Polaris Systems Neuigkeiten

WebSockets: Bidirektionale Verbindung zwischen Client und Server

Der Webbrowser stellt eine Verbindung zum Server her, erhält eine Antwort und schließt die Verbindung. Der Informationsfluss erfolgt unidirektional vom Server zum Client. Dieses Verfahren nennt sich Pull – Verfahren.

Das Internetprotokoll http ist ein zustandsloses Protokoll und somit muss für jede Anfrage an eine Webseite eine neue Verbindung zum Webserver aufgebaut werden. Sie können sich selber vorstellen welche Belastungen Server größerer Webseiten ausgesetzt sind, wenn mehrere Besucher gleichzeitig Anfragen an den Server senden.

Um dieses Problem zu umgehen mussten Lösungen eingesetzt werden, so dass Anfragen innerhalb von Webseiten nicht immer die komplette Webseite Neuladen müssen. Mittels der AJAX - Technologie können z.B. Informationen von Webseiten zurückgegeben werden, ohne dass die Webseite komplett neu geladen werden muss. Teile von Webseiten können mit Informationen vom Server aktualisiert werden, ohne die kompletten Daten der Webseite vom Server abzufragen.

Bei dieser Lösung erfolgt der Datenaustausch asynchron. Das bedeutet, der Client (Besucher) muss eine Anfrage an den Server senden und wartet auf die Antwort vom Server.

Um bidirektionale Verbindungen zwischen Client und Server zu ermöglichen, arbeiten Webentwickler an diversen Lösungen. Die Nutzung des XMLHttpRequests, die durch eine Multipart-Nachricht des Servers eine Stream - Verbindung von Server zu Client ermöglichen wäre z.B. eine Alternative. Der Nachteil des XMLHttpRequest-Objekts ist, dass es in den verschiedenen Browsern unterschiedlich implementiert wurde.

Eine weitere Möglichkeit die Push-Technologie zu simulieren ist das ständige Nachfragen des Clients, ob der Server eine neue Nachricht für den Clienten hat.

Eine echte Alternative stellen die WebSockets welche Teil der HTML 5 Spezifikation sind. Mittels WebSockets können dauerhafte und bidirektionale und synchrone Verbindungen zwischen Client und Server aufgebaut werden. Ein sinnvoller Einsatzzweck wäre z.B. die Einbindung eines Chats für Ihre Supportmitarbeiter auf Ihrer Webseite, so dass Ihre Besucher direkt auf Ihre Fragen Antworten in Echtzeit erhalten können.

Mittels WebSockets kann nun eine zustandsbezogene Verbindung zwischen Client und Server aufgebaut werden. Anstatt ständig vom Backend aus Fortschrittsaktualisierungen zu polen, kann die Website einen WebSocket abonnieren und die Benutzer über das Backend in Echtzeit mit Informationen versorgen. Es reicht wenn der Client die Verbindung zum Server öffnet. Die dann offene Verbindung kann im Folgenden aktiv vom Server verwendet werden.

Einsatzgebiete wären unter anderem:

  • kollaborative Websites
  • Internet-Support (Chat)
  • Spiele (auf Basis von HTML5)
  • Finanzanwendungen
  • Server – Monitoring - Anwendungen im Web

Im nächsten Kapitel werden wir ein wenig die Funktionsweise der WebSockets erläutern.

Zurück