Rolf b: Nachricht vom Server an Client

Beitrag lesen

Hier steht eine recht ausführliche Übersicht.

Polling und Foreverframes sind in Websocket-Libraries Fallbacks für den Fall, dass der Client oder der Server keine Websockets unterstützen.

Je nach Aufgabenstellung ist Polling die simplere Lösung. Websockets sind schick, aber wie schon gesagt wurde brauchst Du die Infrastruktur dazu.

Wenn Du Polling betreiben willst, hast du zwei Optionen: Short-Polling und Long-Polling. Bei Short-Polling führt der Client (=Browser) einen Ajax-Request durch. Der prüft, ob es für den Client relevante Information(en) gibt, und kehrt sofort zurück, mit null, einem oder X Informationspäckchen. Daraufhin wartet der Client eine kurze Zeit und startet die nächste Abfrage. Bei Long-Polling kehrt der Ajax-Request NICHT sofort zurück. Statt dessen wartet er auf dem Server - entweder per Sleep-Funktion und internem Polling auf eine Nachrichtenquelle, oder per Interprozess-Synchronisierung, ob für den konkreten Client eine Nachricht eintrifft. Wenn eine Nachricht vorliegt (oder mehrere) wird die Response geschickt. Da ein HTTP Request nicht unbegrenzt wartet, muss ein Long-Polling nach einer gewissen Zeit auch dann zurückkehren, wenn keine Nachricht vorliegt. Der Client löst dann sofort den nächsten Poll aus.

Short Polling bedeutet mehr HTTP Traffic, dafür aber weniger parallel laufende Server-Requests. Long-Polling (oder auch Foreverframes) bedeuten ohne spezielle Infrastruktur einen ständig laufenden Web-Request pro Client, das kannst Du nur machen, wenn Du nicht zu viele User hast (oder genug Server :D).

Rolf