2010-01-19 13 views
5

La sua funzione è il cosiddetto "server push", che anche google wave sfrutta.Capire la cometa con l'esempio

Qualcuno può spiegare questo concetto con lo snippet di codice come funziona effettivamente nell'applicazione Web?

risposta

2

Alcuni 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> 

Così il codice di cui sopra stabilisce una connessione permanente al server e la funzione di callback viene chiamata ogni volta che c'è un aggiornamento sul server. Il prezzo cambia colore se sale o scende e rimane il colore che era prima se non ci sono cambiamenti.

Un'alternativa sarebbe quella di avere un intervallo di tempo che richiede AJAX ogni secondo che ha il sovraccarico di stabilire e abbattere una connessione.

+0

Come è implementato 'CometLibrary'? Mi chiedo come fa il lato client a ricevere una risposta se la connessione della richiesta non è ancora finita? – user198729

+0

giocare con questo: http://goldfishserver.com/ Se si digita un messaggio in un altro browser, è possibile vedere la roba in corso di aggiornamento in Firefox. Vedrai anche che nuove cose stanno arrivando sulla stessa connessione. Il fatto che quella connessione si resetta ogni 5 secondi è per il rilevamento degli errori di connessione, penso. –

+0

Per quanto riguarda come, implementato, fidati di me, non vuoi sapere. C'è un sacco di ingannevoli trucchi coinvolti. –