Sa fonction est appelée "push serveur", ce que google wave semble également tirer parti.Comprendre la comète par l'exemple
Quelqu'un peut-il expliquer ce concept par extrait de code comment cela fonctionne réellement dans une application web?
Sa fonction est appelée "push serveur", ce que google wave semble également tirer parti.Comprendre la comète par l'exemple
Quelqu'un peut-il expliquer ce concept par extrait de code comment cela fonctionne réellement dans une application web?
Certains 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>
Ainsi, le code ci-dessus établit une connexion permanente au serveur et la fonction de rappel est appelée chaque fois qu'il ya une mise à jour sur le serveur. Le prix change de couleur s'il monte ou descend et reste la couleur qu'il était auparavant s'il n'y a pas de changement. Une alternative à cela serait d'avoir un temporisateur d'intervalle faisant une requête AJAX toutes les quelques secondes, ce qui a le temps nécessaire pour établir et arrêter une connexion.
Comment 'CometLibrary' est-il implémenté? Comment le côté client obtient-il une réponse si la connexion de la requête n'est pas encore terminée? – user198729
jouez avec ceci: http://goldfishserver.com/ Si vous tapez un message dans un autre navigateur, vous pourriez voir les choses mises à jour dans firefox. Vous verrez également que de nouvelles choses arrivent sur la même connexion. Le fait que cette connexion se réinitialise toutes les 5 secondes est pour la détection d'erreur de connexion, je pense. –
Quant à la façon dont il est mis en œuvre, croyez-moi, vous ne voulez pas savoir. Il y a beaucoup de piratage compliqué. –