Java Reference
In-Depth Information
14.2.4■Ein WebSocket mit JavaScript erzeugen
Um mit JavaScript ein WebSocket aufzubauen, erzeugen Sie ganz konventionell eine Instanz
über den WebSocket -Konstruktor und geben dabei als ersten Parameter den Host samt
optional dem Port sowie als zweiten Parameter optional ein gewünschtes Subprotokoll für
das Kommunikationsprotokoll zwischen Client und Server an. Dabei kann es sich beim
zweiten Parameter um einen String oder um ein Array von Strings handeln. Jeder String
sollte einen Subprotokollnamen darstellen. Der Server akzeptiert nur eines der weitergege-
benen Subprotokolle im Array. Die Subprotokollnamen müssen den registrierten Subproto-
kollnamen in der IANA-Registrierung entsprechen. Zurzeit gibt es nur einen oiziellen und
seit Februar 2012 registrierten Subprotokollnamen ( soap ).
14.2.4.1■Erzeugen einer WebSocket-Instanz
Listing 14.11■ Erzeugen einer WebSocket-Instanz mit Port und Subprotokoll
var connection = new WebSocket('ws://localhost:1337', ['soap', 'xmpp']);
Listing 14.12■ Erzeugen einer WebSocket-Instanz ohne Port und Subprotokoll
var connection = new WebSocket('ws://localhost');
HInWEIS: Beachten Sie das Protokoll ws . Das ist das neue URL-Schema für
WebSocket-Verbindungen. Außerdem gibt es das Protokoll wss für sichere Web-
Socket-Verbindungen.
Der WebSocket-Handshake
Zu Beginn einer WebSocket-Verbindung führen Server und Client wie immer einen Hand-
shake durch, bei dem Header-Informationen getauscht werden. Dieser Handshake ähnelt
auch bei ws vom Aufbau her dem http-Header (bzw. bei wss dem https-Header) und ist voll-
ständig abwärtskompatibel zu diesem, was die Nutzung des Standard-HTTP-Ports 80 sowohl
für normale HTTP-Kommunikation als auch für die Websocket-Nutzung ermöglicht.
14.2.4.2■Senden von Daten an den Server - die Methode send()
Das Senden von Daten an den Server erfolgt mit einer Methode send() , wie man sie von
AJAX kennen sollte. Als Parameter geben Sie die zu sendenden Daten an.
Listing 14.13■ Die send()-Methode
connection.send('Ping-Pong');
Die Methode unterstützt Strings, kann aber in der neuesten Speziikation auch Binärmittei-
lungen 3 senden. Allerdings wird die Verwendung von Binärdaten gerade in älteren Syste-
3 Im Blob- oder ArrayBufer-Format. Dazu muss die connection.binaryType -Eigenschat von WebSocket entweder
auf "blob" oder auf "arraybuffer" gesetzt werden (default ist "blob" ).
 
Search WWH ::




Custom Search