HTTP SSE, wie der Server die Client-Verbindung hältPhp

PHP-Programmierer chatten hier
Anonymous
 HTTP SSE, wie der Server die Client-Verbindung hält

Post by Anonymous »

Ich verwende Debian 13 mit Nginx 1.26.3 und SSE (Server Sent Event) und PHP. Ich habe versucht, viele Verbindungen zu Kunden aufzubauen. Aber ich habe nicht immer die Möglichkeit, den Kunden etwas zu schicken! Was ich in der Dokumentation gelesen habe, ist, dass der Server die Verbindung aufrechterhalten muss, bis neue Daten zum Senden verfügbar sind. Ich habe es folgendermaßen gemacht:

Code: Select all

while($lastTime == $_SESSION['lastTime']{
sleep(10);
}
In SESSION wird die lastTime gespeichert, wann der Server neue Daten erstellt hat und in $lastTime wird die lastTime des letzten Datenpakets gespeichert, das der Client empfangen hat. Wenn sich die SESSION['lastTime'] ändert, sind neue Daten verfügbar.
Aber es funktioniert nicht! Die Schleife wird niemals enden, da das PHP-Skript keine neuen Daten empfangen kann, solange sich das Skript in der while-Schleife befindet. Und deshalb wird SESSION['lastTime'] nicht aktualisiert!
Ich dachte, dass mehrere Kopien desselben Skripts ausgeführt werden können. Aber das scheint nicht der Fall zu sein! Gibt es eine andere Möglichkeit, die Verbindung zum Server aufrechtzuerhalten? Tut mir leid, wenn das eine einfache Frage ist, aber mir fehlt das nötige Verständnis.
Wenn nur eine Kopie gleichzeitig ausgeführt werden kann, wie kann der Server dann mehrere Verbindungen halten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post