2009-08-06 5 views
1

Souvent, les clients demandent des fonctionnalités telles que la messagerie instantanée (IM) et d'autres communications client-client (P2P) pour leurs applications Web. Typiquement, comment cela se fait-il dans les navigateurs web normaux? Par exemple, j'ai vu des démos de Google Wave (et Gmail) qui sont capables de messagerie instantanée depuis un navigateur normal. Est-ce via HTTP? Ou XmlHttpRequest (AJAX) fournit-il le backend nécessaire pour une telle communication?Quels protocoles TCP sont utilisables pour la communication client-client?

Plus que tout, je me demande comment un serveur peut "réveiller" le client distant, disons pour envoyer un message instantané? Ou le client doit-il continuer à "interroger" le serveur de messagerie pour de nouveaux messages instantanés?

Répondre

3

Typiquement, le navigateur interrogera le serveur pour les nouveaux messages. 'long poll' (voir aussi this link) - le serveur répond immédiatement s'il a quelque chose; sinon, il attend, en gardant la connexion ouverte pendant un moment. Si un message arrive, il se réveille immédiatement et l'envoie, sinon il revient avec un 'non, reviens' après quelques dizaines de secondes. Le client les recompose immédiatement pour revenir dans l'état de longue interrogation.

+0

Une idée d'autres protocoles tels que RTMP? http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol –

+1

D'autres protocoles ont tendance à ne pas être supportés par JavaScript. Si vous utilisez Flash, vous pouvez ouvrir les sockets TCP brutes et faire ce que vous voulez. – bdonlan

Questions connexes