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