Comet
De Wikipedia, la enciclopedia libre
Comet es una técnica de programación Web muy similar a AJAX, que utiliza XMLHttpRequest, se utiliza para la entrega de datos entre cliente servidor a través del protocolo HTTP, y la entrega de datos se hace sin que el cliente lo haya solicitado.
Comet también es conocido como Server Push o HTTP Push.
Tabla de contenidos |
[editar] Antecedentes
Normalmente una página web es entregada al cliente a petición de él mismo. Para cada petición el navegador realiza una conexión HTTP al servidor web, el servidor regresa los datos y termina la conexión. La desventaja de este método es que para poder actualizar los datos en el cliente, el usuario o el cliente debe actualizar o cambiar de página web, lo que hace que esto tome mucho tiempo sin dejar de lado que consume mucho ancho de banda. Una solución a esto es AJAX que permite al navegador solicitar solo la parte de la página web que fue cambiada o actualizada. Esto reduce significativamente el tiempo para acualizar el contenido, sin embargo para algunas situaciones no es conveniente.
Por ejemplo en una aplicación de mensajes instantáneos que está basada sobre AJAX, para que una lista de usuarios pueda actualizarse pudiendo cambiar si un usuario se conectó o desconectó, el cliente necesita conectarse al servidor web cada cierto tiempo solicitando los cambios que hayan ocurrido, esto consume ancho de banda y tiempo.
[editar] AJAX vs Comet
La diferencia que existe entre AJAX y Comet es que en este modelo se mantiene una conexión abierta entre el cliente y el servidor web; el cliente no solicita los datos, pero si envía información al servidor, y el servidor no le responde al cliente con un bloque de datos, se espera a que haya algún evento de lado del servidor para enviar la información.
Volviendo al ejemplo de la aplicación de mensajes instantáneos, el cliente no deberá estar solicitando los cambios de la lista de usuarios, el servidor web es el que le envía los datos al cliente cuando cambia la lista de usuarios, esto reduce considerablemente el consumo de ancho de banda.
[editar] Historia
Alex de DojoToolkit.org fue el primero en definir esta técnica, y Dojo es el primer framework que implementa a Comet.
[editar] Sitios usando Comet
- Chat in GMail
- Meebo
- Jot Live
[editar] Referencia
- DojoToolkit - pionero en la implementación de Comet
- Arquitectura de software
- AJAX
- Objeto XMLHttpRequest (en inglés)
- XML-RPC
- XML
- Tutorial de XulPlanet explicando Server Push (en inglés)
- Librería en JavaScript que implemente HTTP Push, sin usar Ajax
- Asteroid (a small Comet): Implementación simple, pero funcional, en Squeak de Diego Gómez Deck
- Ejemplo de COMET: un chat asíncrono web: Sencillo tutorial sobre como implementar COMET con HTML y PHP.