Pregunta

¿Este chat utiliza "encuesta larga" o "transmisión http"?

http://go-mono.com/moonlight/chat.aspx

¿Fue útil?

Solución

No es nada tan simple.Usa http://www.mibbit.com/chat, que es un cliente IRC completo escrito en Javascript y Java.Blog en http://blog.mibbit.com/.

Editar: Aquí está tu respuesta.

La primera parte que puse a trabajar fue la comunicación entre el navegador y el servidor.Esto se hace usando 2 XMLHttpRequests.El primero es simplemente enviar datos desde el navegador al servidor.Utiliza keep-alive para minimizar nuevas conexiones.

El segundo XHR es el de "recibir encuestas diferidas".Se conecta al servidor y el servidor lo mantiene abierto hasta que haya mensajes disponibles o expire el tiempo de espera.Este también se mantiene activo, por lo que la siguiente solicitud se realiza en la misma conexión.

Lo que obtienes son 2 conexiones abiertas al servidor, con paquetes (json en este caso) y algunos encabezados http de vez en cuando.Para asegurarme de que el servidor pudiera escalar, escribí un servidor web personalizado en Java usando nio.Maneja todas las conexiones en un solo hilo y, como digo, escala a decenas de miles de conexiones.

Si el cliente solicita una nueva conexión, envía una solicitud al servidor web, que luego se conecta y comienza a realizar proxy, etc.También ejecuta un servidor de identificación en el caso de conexiones irc para que un servidor irc pueda identificar navegadores individuales.Observé los marcos existentes, etc. para hacer este tipo de cosas, pero valoré aprender cómo funciona todo y pensé que mi caso de uso puede ser lo suficientemente específico como para poder optimizar más que los marcos generales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top