Je suggérerais fortement d'investir du temps sur Comet, mais je ne connais pas d'implémentation ou de bibliothèque réelle que vous pourriez utiliser.
Pour une sorte de "panneau de contrôle du centre d'appels" d'une application Web qui impliquait la mise à jour de l'état de l'agent et de la file d'attente pour un centre d'appels en direct, nous avons développé une solution interne qui fonctionne, mais qui est loin d'une bibliothèque que vous pourriez utiliser.
Ce que nous avons fait, c'est de mettre en place un petit service sur le serveur qui communique avec le système téléphonique, attend de nouveaux événements et conserve une photo de la situation. Ce service fournit un petit serveur Web.
Nos clients Web se connectent via HTTP à ce serveur Web et demandent la dernière photo (codée en XML), l'affiche et recommence, demandant la nouvelle photo. À ce stade, le serveur Web peut:
- Renvoyez la nouvelle photo, s'il y en a une
- Bloquez le client pendant quelques secondes (30 dans notre configuration) en attendant qu'un événement se produise et changez la photo. Si aucun événement n'a été généré à ce stade, il renvoie la même photo, uniquement pour permettre à la connexion de rester active et de ne pas expirer le client.
De cette façon, lorsque les clients interrogent, ils obtiennent une réponse en 0 à 30 secondes maximum. Si un nouvel événement a déjà été généré, il l'obtient immédiatement), sinon il se bloque jusqu'à ce qu'un nouvel événement soit généré.
C'est essentiellement un sondage, mais c'est un sondage assez intelligent pour ne pas surchauffer le serveur Web. Si Comet n'est pas votre réponse, je suis sûr que cela pourrait être implémenté en utilisant la même idée mais en utilisant plus largement AJAX ou le codage en JSON pour de meilleurs résultats. Cela a été conçu à l'époque pré-AJAX, il y a donc beaucoup de place à l'amélioration.
Si quelqu'un peut fournir une implémentation légère et réelle, c'est parfait!