Zum Inhalt springen

HTML5 und die Websockets

HTML5 hat viele neue Features, auf die man als Entwickler schon immer gewartet hat und die man zum Teil durch Workarounds simuliert hatte. Sehr beliebt ist das Canvas Element, das wohl Animationen und Interaktionen mit den Browserboardmitteln erlauben wird. Daneben sind für kollaborative Webapplikationen die Websockets spannend, da diese einem Server die Möglichkeit geben Daten zum Client zu senden – ohne dass der Client diese explizit erfragt hat.

Websockets erlauben es einem Browser eine TCP Verbindung aus der JS-Engine des Browers heraus aufzubauen. PHP bietet alle Möglichkeiten einen Server zu erstellen und erlaubt es somit auch einen Websocket-Server bereitzustellen. Hierfür ist es wichtig, dass der korrekte Header gesendet wird. Da man als Entwickler diese Arbeit nicht bei jedem Projekt wiederholen möchte, nutzt man wie üblich eine Blibliothek. Nach etwas Try and Error fand ich die Bibliothek von Nico Kaiser. Diese ist aus mehreren Gründen interessant.

Die Bibliothek besteht aus einer Client Bibliothek und einer Serverkomponente. Der Vorteil dieser Clientkomponente ist die Tatsache, dass man Websockets damit sogar nutzen kann, wenn der Browser diese eigentlich nicht unterstützt. Hier wird ein Fallbackmechanismus genutzt, der auf Flash basiert.

Der Server ist nur mit PHP 5.3 lauffähig und kommt mit einer Beispiel „echo“ Applikation. Anhand dieser lässt sich auch ein guter Einstiegspunkt in eine Chat-Applikation finden, wenn man sich mit dieser Technologie auseinander setzen möchte.

Um die Echo Applikation zu testen, muss man die Serverkomponente nur auf der Kommandozeile starten und den Client in einem Browser aufrufen. Spannend ist hier auch die Möglichkeit mit mehreren Browsern parallel die Webapplikation aufzurufen und zu sehen, wie ein Text in den anderen Browsern erscheint. Eigentlich das, was ein Chat-System auch macht.

Daneben kann man sich auch weitere Applikationen vorstellen, bei denen Daten auf serverseite generiert und an den Client weitergegeben werden. Mit Websockets sind diese Datentransfers sehr dicht an Echtzeit zu realisieren.

Published inAllgemein

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close