2010-01-19 4 views
5

Его особенность - так называемый «серверный толчок», который, похоже, также использует рычаги Google.Понимание кометы по Примеру

Может кто-нибудь объяснить эту концепцию по фрагменту кода как это работает в веб-приложении?

ответ

2

Некоторые псевдо-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> 

Таким образом, приведенный выше код устанавливает постоянное соединение с сервером и функция обратного вызова вызывается каждый раз, когда есть обновление на сервере. Цена изменяет цвет, если идет вверх или вниз и остается цветом, который был ранее, если нет изменений.

Альтернативой тому было бы иметь интервальный таймер, делающий запрос AJAX каждые столько секунд, что имеет накладные расходы на установление и срыв соединения.

+0

Как реализована «CometLibrary»? Я блуждаю, как клиентская сторона получает ответ, если соединение с запросом еще не закончено? – user198729

+0

есть игра с этим: http://goldfishserver.com/ Если вы введете сообщение в другой браузер, вы увидите, что материал обновляется в firefox. Вы также увидите, что новый материал поступает в одно и то же соединение. Тот факт, что это соединение сбрасывается каждые 5 секунд, для обнаружения ошибок соединения, я думаю. –

+0

Что касается того, как это реализовано, поверьте мне, вы не хотите знать. Существует много сложного хакера. –

 Смежные вопросы

  • Нет связанных вопросов^_^