Java Reference
In-Depth Information
Dann sollten wir uns einen passenden JavaScript-Code erstellen
(MeinServerSocket.js)
.
Listing 14.22■
Der Code für den serverseitigen JavaScript-Code
var WebSocketServer = require('websocket').server;
var http = require('http');
var
server
= http.createServer(function(request, response) {
});
server.listen(1337, function() { });
wsServer = new WebSocketServer({
httpServer:
server
});
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin);
connection.on('message', function(message) {
if (message.type === 'utf8') {
if (message.utf8Data=="Login") {
connection.sendUTF("Verbindung etabliert");
}else {
connection.sendUTF(new Date().toDateString() + ": "
+ message.utf8Data);
}
}
});
connection.on('close', function(connection) {
});
});
Der Code basiert in der Grundstruktur auf dem oben gesehenen einfachen Webserver.
Sie sehen zuerst die Einbindung des
WebSocket
-Moduls.
Dann wird ein passender Server erzeugt, der mit WebSockets umgehen kann. Dazu bauen
wir einen Webserver wie im Hallo-Welt-Beispiel und der Server soll auf einem bestimmten
Port (der natürlich mit der Port-Angabe des WebSocket übereinstimmt) auf die Anfrage
eines Clients hören. Allerdings braucht hier die Callback-Funktion der
listen()
-Methode
keine Funktionalität zu haben, denn wir wollen nicht auf http-Anfragen hören. Wir neh-
men stattdessen den Webserver und übergeben ihn als Parameterwert dem Konstruktor
eines
WebSocketServer
. Mit diesem reagieren wir jetzt auf die ws-Anfragen vom Client.
Der Eventhandler zur Reaktion auf die Anfrage (
wsServer.on('request', function(request)
{...})
) akzeptiert Verbindungen, aber nur von der Origin, und verwertet dann in einem
Callback die Nachricht, die der Client geschickt hat, über die Eigenschat
utf8Data
. Je
nach Nachricht vom Client wird mit
sendUTF()
eine passende Antwort an den Client
geschickt. Beachten Sie die Syntax mit
on()
. Das kennt man etwa auch aus jQuery. Dort
heißt das Verfahren mit diesen Methoden
Eventhelper
. Das Event ist
message
. Das ent-
spricht genau dem
onmessage
, das wir bei Web Workern schon gesehen haben
5
. Insge-
samt ist eine hohe Ähnlichkeit zu erkennen, was aber bei Callback-Konzepten im Web
sowieso fast immer gilt.
Der Rest vom Code ist im Grunde normales JavaScript.
Der Server wird nun in einer Konsole mit
node [NameDerJavaScriptDatei]
gestartet. Anschlie-
ßend können wir aus dem Browser heraus Anfragen an den Server schicken.
5
Oder denken Sie an die Syntax
addEventListener('message', ...)
.
Search WWH ::
Custom Search