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?
Respuesta
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.
¿sabes qué método usa Gmail? ¿IFrame oculto, XMLHttpRequest? – chat
@chat view source? –
¿Quizás un enlace a la versión en inglés de Wikipedia? –
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.
He oído que usan cometa. No es una solicitud del cliente AFAIK –
Ya veo. Aprendí algo nuevo hoy. ¡Gracias! – sybreon
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. –
Yep Comets es correcto. Google Web Toolkit Applications by Ryan Dewsbury explica cómo crear una aplicación Instant Messenger basada en Comets en el capítulo 9.
- 1. Iniciar chat de video sin interacción del usuario - Android
- 2. Cómo reducir un número de solicitudes AJAX para un chat?
- 3. cliente de php chat
- 4. Cliente de chat con GWT
- 5. Detectar solicitudes AJAX en el navegador (lado del cliente)
- 6. ¿Es posible realizar Incluye con matraz?
- 7. Cómo realizar solicitudes HTTP externas con Node.js
- 8. ¿Es posible que Java String.split pueda devolver una Cadena nula []
- 9. jQuery: Hacer solicitudes de ajax simultáneas, ¿es posible?
- 10. Solicitudes AJAX de caché
- 11. ¿Es posible modificar una imagen para que alguien con miopía pueda verla claramente sin gafas?
- 12. ¿Es posible realizar una fusión in situ sin almacenamiento temporal?
- 13. Posible reescribir url cliente con javascript sin recargar página
- 14. ¿Es posible realizar solicitudes entre dominios en Javascript Y establecer encabezados personalizados?
- 15. ¿Es posible obligar a jQuery a realizar llamadas AJAX para URL con habilitado gzip/deflate?
- 16. Cómo realizar una solicitud HTTP DELETE con la biblioteca Solicitudes
- 17. ¿Es posible realizar búsquedas difusas de T-SQL sin SSIS?
- 18. Cómo evitar que Safari intercepte 401 respuestas a solicitudes ajax
- 19. Solicitudes AJAX entre sitios
- 20. solicitudes getJSON o AJAX que no funcionan con IE9
- 21. javamail: ¿Cómo le digo a gmail que no me firme en el chat?
- 22. ¿Cómo rastrear las solicitudes de Ajax con Google Analytics?
- 23. ¿Cómo Gmail hace que IE vuelva a funcionar sin actualizar?
- 24. jquery ajax soporte en línea de chat
- 25. La interacción del usuario a veces arruina las solicitudes jQuery ajax en UIWebView
- 26. ¿PhoneGap es compatible con las solicitudes HTTPS ajax?
- 27. Fuga de memoria con solicitudes AJAX + jQuery
- 28. ¿Es posible enviar solicitudes directamente a Amazon SQS desde http (cliente de javascript)?
- 29. Pruebas unitarias Solicitudes AJAX con QUnit
- 30. ¿Es posible desactivar AJAX sin desactivar completamente JavaScript?
Pregunta de secuestro: ¿qué tipo de estrategia de sondeo AJAX usa Gmail para implementar el cliente de chat? – Jimmy
wow prácticamente vuelves a escribir la pregunta. –
@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