Его особенность - так называемый «серверный толчок», который, похоже, также использует рычаги Google.Понимание кометы по Примеру
Может кто-нибудь объяснить эту концепцию по фрагменту кода как это работает в веб-приложении?
Его особенность - так называемый «серверный толчок», который, похоже, также использует рычаги Google.Понимание кометы по Примеру
Может кто-нибудь объяснить эту концепцию по фрагменту кода как это работает в веб-приложении?
Некоторые псевдо-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 каждые столько секунд, что имеет накладные расходы на установление и срыв соединения.
Как реализована «CometLibrary»? Я блуждаю, как клиентская сторона получает ответ, если соединение с запросом еще не закончено? – user198729
есть игра с этим: http://goldfishserver.com/ Если вы введете сообщение в другой браузер, вы увидите, что материал обновляется в firefox. Вы также увидите, что новый материал поступает в одно и то же соединение. Тот факт, что это соединение сбрасывается каждые 5 секунд, для обнаружения ошибок соединения, я думаю. –
Что касается того, как это реализовано, поверьте мне, вы не хотите знать. Существует много сложного хакера. –