Consiglio vivamente di investire un po 'di tempo su Comet, ma non conosco una vera implementazione o libreria che potresti usare.
Per una sorta di "pannello di controllo del callcenter" di un'app Web che prevedeva l'aggiornamento dell'agente e lo stato della coda delle chiamate per un Callcenter live, abbiamo sviluppato una soluzione interna che funziona, ma è lontana da una libreria che è possibile utilizzare.
Quello che abbiamo fatto è stato implementare un piccolo servizio sul server che parla al sistema telefonico, attende nuovi eventi e mantiene una fotografia della situazione. Questo servizio fornisce un piccolo server web.
I nostri client Web si connettono tramite HTTP a questo server Web e chiedono l'ultima foto (codificata in XML), la visualizzano e poi vanno di nuovo, chiedendo la nuova foto. Il server web a questo punto può:
- Restituisci la nuova foto, se ce n'è una
- Blocca il client per alcuni secondi (30 nella nostra configurazione) in attesa che si verifichi un evento e cambi la fotografia. Se nessun evento è stato generato a quel punto, restituisce la stessa foto, solo per consentire alla connessione di rimanere in vita e non timeout del client.
In questo modo, quando i client eseguono il polling, ottiene una risposta entro 0-30 secondi al massimo. Se un nuovo evento è già stato generato, lo ottiene immediatamente), altrimenti si blocca fino a quando non viene generato un nuovo evento.
Fondamentalmente è il polling, ma è un po 'intelligente polling per non surriscaldare il server web. Se Comet non è la tua risposta, sono sicuro che questo potrebbe essere implementato usando la stessa idea, ma utilizzando AJAX in modo più ampio o codificando in JSON per risultati migliori. Questo è stato progettato nell'era pre-AJAX, quindi ci sono molti margini di miglioramento.
Se qualcuno è in grado di fornire un'implementazione leggera di questo, fantastico!