© turgaygundogdu/Shutterstock.com
Einen WebSocket-Server in PHP aufsetzen

Vom Protokoll zur Lösung in purem PHP


Echtzeit wird im Web immer wichtiger: Instant Messaging, Benachrichtigungen, gemeinsame Bearbeitung von Inhalten und vieles mehr. Diese Technologien ermöglichen neue Features und treffen auf neue Anwendungsfälle. WebSockets wurden eingeführt, um die Beschränkungen des Pollings zu überwinden, indem sie eine bidirektionale Kommunikation zwischen Client und Server möglich machen. WebSockets werden häufig mit dem Node.js- und JavaScript-Ökosystem implementiert. Es ist aber auch möglich, WebSockets nur mit PHP zu integrieren.

Das Protokoll WebSocket wurde 2011 im RFC 6455 standardisiert [1] und ermöglicht den Austausch zwischen Client und Server in Echtzeit. Das entscheidende Merkmal der Funktionsweise liegt auf der Serverebene, da es nicht nur Antworten sendet, sondern auch spontan eine Nachricht an den Client senden kann. Das Protokoll bietet außerdem einen Vollduplex-Kommunikationskanal: Die Daten können gleichzeitig in beide Richtungen übertragen werden, es erlaubt somit eine starke Interaktivität.

Um einen WebSocket-Server einzurichten, muss ein Programm erstellt werden, das direkt vom Server ausgeführt wird (z. B. über einen Service). Es wird also nicht über einen Browser aufgerufen, wie man es von PHP gewohnt ist. Falls dieses Programm in JavaScript geschrieben werden soll, wenn bereits PHP verwendet wird, müssen auf der Serverseite zwei verschiedene Technologien implementiert werden. Dieser Schritt stellt bereits eine wichtige Entscheidung für das gesamte Projekt dar. Alles davon muss zum Leben erweckt werden. Somit muss für alles davon auch die Stabilität des Codes gewährleistet werden, es fallen Softwareupdates auf dem Server an und das Monitoring muss gemanagt werden. Es ist daher von Vorteil, auf Tools zurückzugreifen, mit denen sich der Programmierer bereits gut auskennt. Je größer die Anzahl der Werkzeuge, desto komplexer wird es, das System zu pflegen. An diesem Punkt können wir uns die Frage stellen: „Könnten wir einen WebSocket-Server direkt in PHP haben, wenn wir PHP bereits anderweitig einsetzen?“ Allein dadurch, dass man sich diese Frage stellt, kann man eine fundierte Entscheidung treffen, statt sich kopfüber auf die erste verfügbare Lösung zu stürzen. Die meisten Sprachen verfügen über mindestens eine Implementierung dieses Protokolls und man muss sich die Zeit nehmen, sie ausfindig zu machen, denn die geeignetste Lösung ist ein Kompromiss zwischen den Fähigkeiten des Teams, der Lebensdauer der Anwendung und der Art der zu entwickelnden...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang