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.

Artikel veröffentlicht am , Matthias Thömmes
Socket.io: Bidirektionale Echtzeitkommunikation über Websockets
(Bild: Socket.io)

Mit Socket.io bieten die Learnboost Labs 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.

  • Socket.io
  • Socket.io
  • Socket.io
  • Node.js
Socket.io

Dazu wurde das nun auch besser dokumentierte Protokoll 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 zum Download bereit.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Vermona
Zufall und Synthesizer

Wie aus einem großen DDR-Staatsbetrieb ein erfolgreicher kleiner Hersteller von analogen Synthies wurde.
Von Martin Wolf

Vermona: Zufall und Synthesizer
Artikel
  1. Digitalisierung: Behörde bekommt weniger Beschwerden über Faxwerbung
    Digitalisierung
    Behörde bekommt weniger Beschwerden über Faxwerbung

    Naht allmählich das Ende der Technologie? Die Bundesnetzagentur hat 2022 viel weniger Beschwerden über Fax-Spam bekommen als im Jahr zuvor.

  2. Ceconomy AG: Media Markt plant offenbar Reparaturabo
    Ceconomy AG
    Media Markt plant offenbar Reparaturabo

    Egal wo die Ware gekauft wurde: Bei Media Markt soll man künftig seine Elektronikgeräte reparieren lassen können - mit einem zweistufigem Abo.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • SanDisk Ultra NVMe 1 TB ab 39,99€ • Samsung 980 1 TB 45€ • MindStar: be quiet! Pure Base 500 69€, MSI MPG B550 Gaming Plus 99,90€, Palit RTX 4070 GamingPro 666€, AMD Ryzen 9 7950X3D 699€ • Corsair DDR4-3600 16 GB 39,90€ • KFA2 RTX 3060 Ti 329,99€ • Kingston Fury 2 TB 129,91€ [Werbung]
    •  /