WebSockets mit PHP

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

Tutorial Amazon Web Services mit PHP – III &... Im vorherigen Teil haben wir eine XML von den AWS mit cURL geladen. Aber Was heißt eigentlich Funktionscaching, und wieso brauchen wir das? Ganz einfa...
Besseres Debugging in PHP Debugging in PHP ist das größte Arschloch von allen nicht schön. Wohl dem, der einigen Aufwand betrieben hat, um XDebug an den Start zu kriegen. Aber ...
Blog für HTML5 Game Development HTML5 Game Development (Spielprogrammierung) ist das nächste große Ding, da führt gar kein Weg dran vorbei! Dummerweise kocht da grad jeder sein eigen...
HTML5 Canvas in einfach – KineticJS Ich bin immer wieder erstaunt darüber was mit dem Canvas-Element alles möglich ist, meistens bin ich auch erstaunt darüber welcher Aufwand dazu betrie...

2 Antworten auf „WebSockets mit PHP“

  1. Pingback: Linkhub – Woche 41-2012
  2. 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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.