Ich würde dringend empfehlen, etwas Zeit in Comet zu investieren, aber ich kenne keine tatsächliche Implementierung oder Bibliothek, die Sie verwenden könnten.
Für eine Art "Callcenter-Kontrollfeld" einer Web-App, bei dem der Agent- und Anrufwarteschlangenstatus für ein Live-Callcenter aktualisiert wurde, haben wir eine interne Lösung entwickelt, die funktioniert, aber weit entfernt von einer Bibliothek ist, die Sie verwenden können.
Wir haben einen kleinen Dienst auf dem Server implementiert, der mit dem Telefonsystem kommuniziert, auf neue Ereignisse wartet und ein Foto der Situation erstellt. Dieser Service bietet einen kleinen Webserver.
Unsere Web-Clients stellen über HTTP eine Verbindung zu diesem Webserver her und fragen nach dem letzten Foto (in XML codiert), zeigen es an und fragen dann erneut nach dem neuen Foto. Der Webserver kann an dieser Stelle:
- Geben Sie das neue Foto zurück, falls vorhanden
- Blockieren Sie den Client für einige Sekunden (30 in unserem Setup) und warten Sie, bis ein Ereignis auftritt und das Foto geändert wird. Wenn zu diesem Zeitpunkt kein Ereignis generiert wurde, wird dasselbe Foto zurückgegeben, nur damit die Verbindung am Leben bleibt und der Client keine Zeitüberschreitung aufweist.
Auf diese Weise erhalten Clients bei Umfragen eine Antwort in maximal 0 bis 30 Sekunden. Wenn ein neues Ereignis bereits generiert wurde, wird es sofort abgerufen. Andernfalls wird es blockiert, bis ein neues Ereignis generiert wird.
Es ist im Grunde ein Polling, aber es ist ein kluges Polling, um den Webserver nicht zu überhitzen. Wenn Comet nicht Ihre Antwort ist, könnte dies sicher mit derselben Idee implementiert werden, aber mit AJAX oder Codierung in JSON, um bessere Ergebnisse zu erzielen. Dies wurde vor der AJAX-Ära entworfen, daher gibt es viel Raum für Verbesserungen.
Wenn jemand eine wirklich leichte Implementierung davon bereitstellen kann, großartig!