Avatar ·

Was sind Long-Polling, WebSockets, SSE und Comet? Wie implementiert man sie in PHP?

Hallo zusammen! Ich bin ein PHP-Anfänger und schreibe einen einfachen Chat auf einer Website. Aktuell funktioniert es so: Der Benutzer sendet eine Nachricht per AJAX, sie wird in der Datenbank gespeichert, und andere Benutzer aktualisieren die Seite manuell (F5), um neue Nachrichten zu sehen. Das ist furchtbar umständlich! Ich habe gehört, dass es Technologien für "Echtzeit" gibt: Long-Polling, WebSockets, SSE und Comet. Aber ich bin mit den Begriffen verwirrt. Soweit ich verstanden habe, ist Comet gar keine Technologie, sondern ein Pattern? Ich brauche, dass neue Nachrichten bei allen Benutzern sofort erscheinen, ohne die Seite neu zu laden. Ich verwende PHP 8.2, Apache und MySQL. Könnt ihr mir sagen, welchen Ansatz ich für den Chat wählen soll? Ich habe eine einfache Lösung mit setInterval() alle 2 Sekunden ausprobiert, aber der Server wird bei 20 Benutzern langsam. Hier ist ein Teil meines aktuellen Codes (Überprüfung auf neue