2010-03-23 4 views

Répondre

3

Ce n'est pas quelque chose aussi simple que cela. Il utilise http://www.mibbit.com/chat, qui est un client IRC complet écrit en Javascript et Java. Blog au http://blog.mibbit.com/.

Editer:Here's your answer.

La première partie de mon travail a été la communication entre le navigateur et le serveur. C'est fait en utilisant 2 XMLHttpRequests. Le premier est simplement d'envoyer des données du navigateur au serveur. Il utilise keep-alive, pour minimiser les nouvelles connexions.

Le second XHR est le "récepteur paresseux de réception". Il se connecte au serveur et le serveur le maintient ouvert jusqu'à ce qu'il y ait des messages disponibles ou qu'un délai expire. Celui-ci est également maintenu en vie, de sorte que la demande suivante descend la même connexion. Ce que vous finissez avec est 2 connexions maintenues ouvertes au serveur, avec des paquets (json dans ce cas), et quelques entêtes http de temps en temps. Pour m'assurer que le serveur évoluerait, j'ai écrit un serveur web personnalisé en Java en utilisant nio. Il gère toutes les connexions dans un seul thread et, comme je le dis, échelles à des dizaines de milliers de connexions. Si le client demande une nouvelle connexion, il envoie une requête au serveur Web, qui se connecte ensuite et lance une opération proxy. Il exécute également un serveur ident dans le cas des connexions irc, de sorte qu'un serveur irc puisse identifier des connexions individuelles. navigateurs. J'ai regardé les cadres existants, etc. pour faire ce genre de chose, mais j'ai apprécié apprendre comment tout cela fonctionne, et j'ai pensé que mon cas d'utilisation peut être suffisamment spécifique pour être capable d'optimiser plus que les cadres généraux.

+3

Donc, ce serait "longue interrogation", alors;) – caf

Questions connexes