2010-01-19 19 views
5

Su característica es llamada "servidor de inserción", que google wave también parece aprovechar.Descripción de Comet por ejemplo

¿Alguien puede explicar este concepto por el fragmento de código cómo funciona realmente en la aplicación web?

Respuesta

2

algunos pseudo-javascript:

<script> 
//open connection to the server, updateFunc is called every time server sends stuff 
//For example ticker price for Google (GOOG) 
var connection = CometLibrary.subscribe("http://server", "GOOG", updateFunc); 

//data is JSON-encoded 
function upudateFunc(data) { 
    var elem = $("#GOOG .last"); 
    if (elem.value < data.last) 
    elem.css("color", "green"); 
    else (elem.value > data.last) 
    elem.css("color", "red"); 
    elem.value = data.last; 
} 

</script> 
<span id="GOOG">GOOG: <span class="last"></span></span> 

Así que el código anterior establece una conexión persistente con el servidor y la función de devolución de llamada se llama cada vez que hay una actualización en el servidor. El precio cambia de color si sube o baja y sigue siendo el color que tenía antes si no hay cambios.

Alternativa a eso sería tener un temporizador de intervalo haciendo una solicitud AJAX cada tantos segundos que tiene la sobrecarga de establecer y derribar una conexión.

+0

¿Cómo se implementa 'CometLibrary'? Vago ¿cómo obtiene la respuesta del lado del cliente si la conexión de la solicitud no ha finalizado todavía? – user198729

+0

tenga un juego con esto: http://goldfishserver.com/ Si escribe un mensaje en otro navegador, podría ver las cosas que se actualizan en Firefox. También verá que nuevas cosas están llegando en la misma conexión. El hecho de que esa conexión se reinicie cada 5 segundos es para la detección de errores de conexión, creo. –

+0

En cuanto a cómo se implementó, confía en mí, no quieres saber. Hay muchos hackers complicados involucrados. –