1UnitedPower: Websockets / PHP

Beitrag lesen

Meine Herren!

Beispiel:
Websocket-Server läuft auf Port 8080
Clientbrowser verbindet sich und wartet auf Infos

anderer Clientbrowser setzt Termin
Server macht DB-Einträge, verbindet sich auf localhost:8080 und gibt info nun somit an den Websocket-Server

Bis auf diesen einen Punkt, ist das ein eleganter Ansatz. Denn hier ensteht eine enge Kopplung zwischen Webserver und Socketserver. Der Webserver, muss wissen, wie er den Socketserver anspricht. Besser wäre, der Socketserver meldet sein Interesse »selbst« beim Server an und greift auf eine lose gekoppelte Schnittstelle zu. Deine Problematik habe ich jetzt erst richtig erfasst: WebServer und SocketServer laufen in verschiedenen Prozessen, deshalb kannst du nicht einfach eine PHP-Klasse modellieren, die ein Event-System bereitstellt. Der Austausch über Ereignisse muss auf eine andere Art stattfinden. Anbieten würde sich hier zum Beispiel ein Datei-Stream, in den deine Webanwendung schreibt, und auf den dein SocketServer lauscht. PHPs Möglichkeiten zur Implementierung einer asynchronen (nicht-blockierenden) Message-Queue sind aber mehr schlecht als recht. Vielleicht hilft dir ein Blick auf ein Framework, das sich genau mit dieser Problematik befasst.

hey das wäre doch eine lösung, ist diese auch praktikabel bzw. "schön"? ;)

Angesichts der beschränkten Kapazitäten von PHP in Hinblick auf nicht-blockierende Ereignisbehandlung, ist das vermutlich tatsächlich der praktische Ansatz, den man  gehen würde, wenn es nicht zu komplex werden soll.

--
“All right, then, I'll go to hell.” – Huck Finn