Java Reference
In-Depth Information
Das folgende Listing zeigt nun eine JavaScript-Datei, in der eine WebSocket -Verbindung
aufgebaut wird. Sowohl beim Laden der JavaScript-Datei als auch nach einem Klick auf den
Button wird eine Anfrage an den Server geschickt.
Listing 14.20■ Aufbau eines WebSocket
var connection = new WebSocket('ws://localhost:1337');
window.onload = function() {
document.getElementById('btn').onclick = function() {
connection.send(Math.random());
};
};
connection.onopen = function() {
connection.send("Login");
};
connection.onerror = function(error) {
document.getElementById('info').innerHTML = 'WebSocket-Fehler: ' + error;
};
connection.onmessage = function(e) {
document.getElementById('info').innerHTML = e.data ;
};
Sie sehen die Erzeugung eines WebSocket -Objekts mit einem URL und einer Portangabe
und dann die Einrichtung der Callbacks für die Etablierung der Verbindung (ein String
"Login" wird dann mit send() zum Server geschickt), einen Fehler und die Ankunt von
Nachrichten vom Server. In den letzten beiden Fällen wird die Meldung vom Server einfach
in dem Div-Element in der Webseite angezeigt.
Nach dem Fertigstellen des DOM-Baums wird ein Eventhandling für den Klick auf die
Schaltläche eingerichtet, die einfach eine Zufallszahl an den Server schickt. Damit kann
man jederzeit weitere Anfragen an den Server schicken.
14.2.6.2■Einen WebSocketServer mit nodejs erstellen
Kommen wir nun zum Server für unser WebSocket-Beispiel. Um einem WebSocket eine Gegen-
stelle zur Verfügung zu stellen, wollen wir wie gesagt Node.js verwenden. Node.js ist modular
aufgebaut und es können bei Bedarf zusätzliche Module eingebunden werden. Das werden wir
für die Unterstützung von WebSockets auch machen müssen, denn diese ist derzeit nicht in
den Standardmodulen von Node.js integriert. Wie das Hallo-Welt -Beispiel von Node.js zeigt,
können wir zwar mit var http = require('http'); die Unterstützung für http mittels der
Standardmodule von Node.js direkt verwenden und mit http.createServer(function (req,
res) {...}).listen(1337, '127.0.0.1'); einen einfachen Webserver erzeugen. Aber die
Unterstützung von WebSockets mit Hilfe eines WebSocketServer -Objekts fehlt zum Zeitpunkt
der Bucherstellung in den Standardmodulen von Node.js.
Wie wir schon besprochen haben, gibt es aber zur Verwaltung der Module den Paketmanager
npm . Wenn man mit der folgenden einfachen Anweisung die Unterstützung für WebSockets
nachinstalliert, kann man mit Node.js in der Folge ein ServerSocket betreiben, das mit dem
WebSocket -Objekt auf Clientseite kommunizieren kann:
Listing 14.21■ Zuerst muss unter Node.js ein Modul installiert sein.
npm install websocket
 
Search WWH ::




Custom Search