Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: WebSocket-palvelin

HannuTapio [12.09.2017 17:26:26]

#

TCP Handshake WebSockets,

Osaako joku neuvoa, onko tuo oikein tuo koodin handshake, minä en tiedä mistä on kyse kun tuo google chrome ja opera katkoo yhteyden heti kun yritän palvelimesta lähettää pakettia ?

Firefox selain toimii oikein, olen ottanut ohjeen mozilla sivustoilta, tähän websockettiin, ja serversockettiin.

try
{
InputStream in = sockets.socket [ aa ].getInputStream ( );
OutputStream out = sockets.socket [ aa ].getOutputStream ( );
String data = new Scanner ( in , "UTF-8" ).useDelimiter ( "\\r\\n\\r\\n" ).next ( );
Matcher get = Pattern.compile ( "^GET" ).matcher ( data );
if ( get.find ( ) )
{
	Matcher match = Pattern.compile ( "Sec-WebSocket-Key: (.*)" ).matcher ( data );
	match.find ( );
	byte [ ] response = ( "HTTP/1.1 101 Switching Protocols\r\n" + "Upgrade: websocket\r\n" + "Connection: Upgrade\r\n" + "Sec-WebSocket-Accept: " + DatatypeConverter.printBase64Binary ( MessageDigest.getInstance ( "SHA-1" ).digest ( ( match.group ( 1 ) + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" ).getBytes ( "UTF-8" ) ) ) + "\r\nSec-WebSocket-Protocol: chat\r\n\r\n" ).getBytes ( "UTF-8" );
	out.write ( response , 0 , response.length );
	String s = new String ( response );
    System.out.println ( s );
}
} catch ( Exception e )
{
	TCP_Apu.socketCloseToNull ( aa );
}

Onko tuo oikein ?

:)

--

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta