Zum Hauptinhalt Zur Navigation

Socket.io: Bidirektionale Echtzeitkommunikation über Websockets

Das Node.js-Modul Socket.io erlaubt die bidirektionale Echtzeitübertragung von Daten mittels Websockets. Die aktuelle Version 0.7.2 unterstützt nun Namespaces, virtuelle Räume, volatile Nachrichten und selbstdefinierte Ereignisse.
/ Matthias Thömmes
Kommentare News folgen (öffnet im neuen Fenster)
Bild: Socket.io

Mit Socket.io bieten die Learnboost Labs(öffnet im neuen Fenster) eine Programmbibliothek zur bidirektionalen Echtzeitübertragung von Daten mittels Websockets. Socket.io wird als Modul für den ereignisorientierten Server Node.js angeboten und steht seit kurzem in der Version 0.7.2 zum Download bereit.

Überarbeitetes Protokoll

Das in Socket.io genutzte Protokoll wurde um ein Revisionssystem erweitert, um die Kompatibilität zwischen den auf Server und Client genutzten Versionen zu wahren. Die Verbindung eines Clients kann nun durch ein neues Paket serverseitig beendet werden, außerdem gibt es serverseitige Callbacks für den Fall, dass ein Client eine Nachricht erhalten hat.

Dazu wurde das nun auch besser dokumentierte Protokoll(öffnet im neuen Fenster) um weitere Nachrichtentypen erweitert. Gleichzeitig wurde der Overhead im Vergleich zu Vorgängerversionen reduziert. Die kürzlich veröffentlichten Fehlerbereinigungen in 0.7.2 beheben Probleme bei Cross-Domain-Requests.

Kanalisierung von Nachrichten durch Namespaces und virtuelle Räume

Mit Namespaces und virtuellen Räumen bietet Socket.io nun ein eigenständiges Routing, mit dem sich die Javascript-Clients fortan zu mehreren Sockets verbinden können. Diese können mittels Namespaces oder durch virtuelle Räume angesprochen werden.

Die neue Version unterstützt auch sogenannte volatile Nachrichten. Bei diesem Nachrichtentyp werden Nachrichten in einem vorab festgelegten Aktualisierungsintervall übermittelt. Clients überspringen dann Nachrichten, die sie nicht schnell genug verarbeiten können, womit Verzögerungen bei umfangreichen Echtzeitstreams vermieden werden.

Automatische Anpassung an Fähigkeiten des Clients

Die Programmbibliothek ermöglicht es Entwicklern in Node.js, neben Websockets andere Transportmethoden zu nutzen, darunter Flash-Sockets, XHR und JSONP. Auf Wunsch wählt die Bibliothek die unterstützte Methode automatisch, wobei sie gängige Browser auch in älteren Versionen unterstützt.

Mit der Einführung von Ereignissen, Callbacks für Sockets sowie einer definierbaren Ereignisschleife kann der eigene Programmcode nun deutlich vereinfacht werden, so Learnboost. Die Zahl der Unit-Tests habe sich auf 160 verdreifacht, was die Verlässlichkeit des Moduls erhöhe.

Socket.io steht unter socket.io(öffnet im neuen Fenster) zum Download bereit.


Relevante Themen