Einführung in Node.js, Folge 14: Websockets

the next big thing  –  0 Kommentare
Anzeige

WebSockets sind ein TCP-basiertes Netzwerkprotokoll, das eine dauerhafte und bidirektionale Verbindung zwischen Client und Server ermöglicht. Auf dem Weg lassen sich beispielsweise Push-Nachrichten zeitnah zustellen, ohne aufwändiges Polling betreiben zu müssen. Wie funktioniert das unter Node.js?

Das HTTP-Protokoll ist die Basis für alle modernen Webanwendungen. Trotzdem gibt es Szenarien, für die es nur bedingt geeignet ist. Dazu gehört beispielsweise die direkte Kommunikation vom Server zum Client, wie sie beispielsweise für Push-Nachrichten erforderlich ist.

Anzeige

Als Ausweg bietet sich das Websockets-Protokoll an, das ebenfalls auf TCP basiert und sich gemeinsam mit HTTP und HTTPS auf einem Port betreiben lässt. Webanwendungen können auf dem Weg beide Protokolle zeitgleich verwenden, ohne dafür großen Aufwand treiben zu müssen. Der wesentliche Vorteil von WebSockets besteht darin, dass sie auf einer dauerhaften TCP-Verbindung aufbauen, die eine bidirektionale Kommunikation ermöglicht, so dass nicht nur der Client den Server, sondern auch der Server jederzeit den Client erreichen kann.

Da Node.js WebSockets nicht von Haus aus unterstützt, muss man auf ein Modul aus der Community zurückgreifen. Die Auswahl ist allerdings groß und bietet je nach Funktionsumfang und Komplexität alles, was das Herz begehrt.

Lösungen wie Socket.io oder Primus abstrahieren zusätzlich sogar den eigentlichen Transportkanal und können auf alternative Technologien als Fallback wechseln, wenn WebSockets im Browser nicht zur Verfügung stehen. Module wie ws unterstützen zwar ausschließlich WebSockets, sind dafür aber weitaus leichtgewichtiger.

Allen Vorteilen zum Trotz gibt es auch bei WebSockets gelegentlich Probleme, insbesondere in Verbindung mit Proxy-Servern, Load-Balancern und Mobilfunknetzen. Auch hier muss man sich daher Gedanken um das Verwalten von Verbindungen und gegebenenfalls die Synchronisation von Daten kümmern.

Wie WebSockets in Node.js funktionieren, zeigt das folgende Video:

Einführung in Node.js, Folge 14: Websockets

tl;dr: WebSockets sind eine interessante Alternative, wenn man einen leistungsfähigen Rückkanal vom Server zum Client benötigt, der ohne Polling auskommt. Allerdings gibt es auch bei WebSockets verschiedene Probleme zu berücksichtigen.

Anzeige