2009-04-09 13 views
58

Todas las respuestas HTTP requieren que el cliente las inicie, incluso aquellas creadas con AJAX. Pero la función de chat de GMail puede recibir mensajes de otros usuarios, incluso cuando estoy sentado en mi cómoda silla de computadora mirando pero no interactuando con el navegador. ¿Cómo lo hicieron?¿Cómo es posible que GMail Chat pueda realizar solicitudes AJAX sin interacción con el cliente?

+8

Pregunta de secuestro: ¿qué tipo de estrategia de sondeo AJAX usa Gmail para implementar el cliente de chat? – Jimmy

+0

wow prácticamente vuelves a escribir la pregunta. –

+0

@Pablo: sí ... bastante seguro de que esto es lo que estaba preguntando, pero no lo resolvió 'hasta que ya había respondido, así que quise limpiarlo' para que alguien más cometiera el mismo error. – Shog9

Respuesta

42

Esa tecnología se conoce como "cometa", sino también como "server push", "ajax inversa", etc.

Se trata de empujar a los datos desde el servidor al navegador, manteniendo una conexión HTTP con vida. Encuentre más información en el wikipedia article (English version).

También aquí hay un pretty good presentation con Joe Walker de DWR, donde habla de cometa.

+0

¿sabes qué método usa Gmail? ¿IFrame oculto, XMLHttpRequest? – chat

+1

@chat view source? –

+0

¿Quizás un enlace a la versión en inglés de Wikipedia? –

8

Como ha señalado con razón, HTTP requiere que el cliente "extraiga" los datos. Gmail aún puede 'extraer' datos del servidor utilizando un temporizador para activar la operación HTTP en lugar de requerir que el usuario haga clic en algo. Por lo tanto, puede parecer automático, pero todavía es iniciado por el cliente.

+1

He oído que usan cometa. No es una solicitud del cliente AFAIK –

+1

Ya veo. Aprendí algo nuevo hoy. ¡Gracias! – sybreon

+7

Comet sigue siendo iniciado por el cliente AFAIK, es solo que el servidor mantiene la conexión abierta hasta que tiene algo interesante que decir en lugar de devolver una respuesta de inmediato. –

Cuestiones relacionadas