WebSockets mit PHP

Screenshot der Ratchet Homepage

WebSockets ist eine jener Techniken, die die Web-Welt nachhaltig revolutionieren könnten, da so Client-Server-Anwendungen recht einfach und vor allem stets Live möglich sind. Für alle die jetzt meinen das ginge auch mit Ajax: bei Ajax ist es ja so, das der Client durch permanente Anfragen nachschauen muss, ob es etwas neues gibt. Bei WebSockets reicht es, wenn der Client die Verbindung öffnet, und dann kann der Server Nachrichten direkt zum Client pushen.

Screenshot der Ratchet Homepage

Dies alles stellt natürlich neue Anforderungen an den Server. Denn zum einen muss der Server die Verbindung aufrecht erhalten, zum anderen ist es natürlich so, das man nicht umlimitiert WebSockets aufbauen kann. Derzeitig State of the Art ist es wohl, WebSockets in Node.Js abzubilden. WebSockets mit PHP abbilden zu wollen ist so eine Sache, die der Architektur von Apache vollkommen entgegensteht. Hier ist es ja so, das ein Request ausgelöst, dann abgearbeitet und das Resultat ausgeliefert wird. Damit hat sich dann die Sache sowohl für PHP als auch für den Apache erledigt. Eventuelle Wiedererkennung des Benutzers erfolgt dann über Cookies.

Nun ist es aber so, das PHP von sich aus ohne einen Request des Clients zu diesem Daten senden muss, und hier kommt die Bibliothek Ratchet ins Spiel. Diese löst alle Probleme über Events und funktioniert nur ab PHP 5.3. Die Bibliothek kann in Frameworks eingebunden werden, wobei die Entwickler besonderen Wert auf Symfony legen. Als Tutorial liegt Ratchet eine Chat-Applikation bei, der Killer-Applikation für WebSockets.

Ob man PHP WebSockets beibringen will muss natürlich jeder für sich selbst entscheiden, aber mit Ratchet funktioniert dies ganz gut. Dennoch denke ich das Node.js einiges an Vorteilen bietet, die in der grundlegenden Architektur des Servers begründet sind. Solltet ihr aber mal eben schnell eine Kleinigkeit machen wollen leistet Ratchet gute Dienste.

Ähnliche Beiträge

HTML5 File Upload in jQuery Eine der sinnvollsten Erweiterungen von HTML5 (und wahrscheinlich auch die am meisten benutzte) ist der neue Datei-Upload. In der Vergangenheit war es...
HTML5 Audio mit Buzz HTML5 Audio ist ein nerviges kleines Biest! Das liegt nicht an der Umsetzung, sondern daran das jeder Browser sein eigenes Süppchen hinsichtlich Codec...
DropArea – Bildupload mit HTML5 und jQuery Das Input-Feld vom Typ File ist ein ausgesprochener Störenfried! Keine Präsentation einer fertigen Website ohne Diskussion darüber, wieso der "Durchsu...
Amazon Product Advertising API – Änderung de... Da mich Amazon inzwischen im spamverdächtigen Bereich mit E-Mail penetriert hier noch mal der Hinweis das ihr die Authentifizierung in euren Altanwend...

2 Kommentare

  • WebSockets haben halt den großen Vorteil, dass der ganze HTTP-Overhead nicht vorhanden ist und Server als auch Client gleichzeitig Daten senden können.

    Wenn es aber wirklich nur darum geht, dass der Server Daten zum Client pushen soll, dann reichen ja Server-Sent Events eigentlich auch aus?!

Schreibe einen Kommentar