Comet y el HTML5

Uno de los problemas con los que nos enfrentamos al intentar desarrollar una aplicación en Comet es que hay que simularlo, ya que los navegadores aún no admiten la posiblidad de recibir información directamente del servidor (push). En la especificación de HTML5 nos encontramos con los eventos enviados por el servidor (server sent events) y el elemento event-source, el cual representa el destino de los eventos producidos por el servidor.

El elemento event-source tiene el atributo src que indica la URL que se procesará, la cual se llamará una vez el elemento haya sido añadido al documento. Para poder recibir la información, el Content-type de la respuesta debe ser application/x-dom-event-stream, teniendo un formato parecido a:

Event: test
Target: p
data: data

Un ejemplo de código para el cliente sería el siguiente:

<p>It should say "PASS" below:</p>
<p id="p">FAIL (script did not run)</p>
<script>
document.addEventListener("click", update, false)
function update(e) {
pass = e.target.id == "x"
document.getElementById("p").firstChild.data = pass ? "PASS" : "FAIL"
}
</script>
<event-source src="support/sse-target.php?target=p&event=click" onclick="update(event)" id="x">

Por ahora solo está implementado en Opera, aunque otros navegadores ya están trabajando en ello. Esperemos que se vuelva un elemento común en todos los navegadores para poder desarrollar aplicaciones web mucho más interesantes.

Más información

Comet: la siguiente etapa de AJAX

Cuando aún hay gente que no conoce sobre AJAX o que anda en sus primeros pasos sobre esta técnica, aparece un nuevo concepto que añadir a nuestro mundo web: Comet. Comet funciona de forma similar a AJAX, pero utilizando conexiones HTTP de larga duración, lo cual reduce considerablemente el tiempo de latencia. El cliente no sondea el servidor de vez en cuando, se trata de que el servidor abre una línea de comunicación y pasa información al cliente. Es especialmente interesante para aplicaciones colaborativas y multi-usuario, como pueden ser: GTalk en GMail, Jot Live, Renkoo, cgi:irc, Meebo, …

COMET – the next stage of AJAX

Vía / Menéame