Как работают обновления в реальном времени?

Как работают обновления в реальном времени?

30.05.2012 05:31:41 Просмотров 54 Источник

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

Мне интересно, как работают эти" обновления в реальном времени"? Я просто ищу общий вид с высоты птичьего полета. Я подозреваю, что JS не может вызывать сервер каждые X секунд для обновления, а затем добавлять его к <ul>. Отправлено ли уведомление с сервера, чтобы вытащить больше контента?

Было бы здорово, если есть простой, как статья, которая объясняет это с демо?

У вопроса есть решение - Посмотреть?

Ответы - Как работают обновления в реальном времени? / How do real time updates work?

Derek 朕會功夫

30.05.2012 05:38:41

Переполнение стека использует веб-сокеты для обновлений в реальном времени. Если вы посмотрите в исходном коде (2012 исходный код), вы увидите:

StackExchange.ready(function () {
    StackExchange.realtime.init('ws://sockets.ny.stackexchange.com');
    StackExchange.realtime.subscribeToInboxNotifications();
    StackExchange.realtime.subscribeToReputationNotifications('1');
});

Но обратите внимание, что некоторые версии Opera не поддерживают WebSocket. ( не раньше Opera 10.70)

Однако Facebook, похоже, не использует веб-сокеты , и я думаю, что они просто используют простой XHR с методом под названием long polling, который сервер удерживает соединение до тех пор, пока не появится новая информация, а затем отвечает на запрос. Если вы откроете инструменты разработчика, вы увидите, что всегда есть один запрос, который имеет статус ожидания.

Это действительно, отправка запроса каждые ~60 секунд.

Jaime

23.01.2013 07:10:23

Похоже, что Twitter также использует простые XHR (1-минутные интервалы) для своих "обновлений в реальном времени".

Panama Jack

13.01.2014 10:35:12

Facebook использует long polling/Comet. Таким образом, он устанавливает соединение и ждет ответа, если ответа нет, то он тайм-аут и повторяет попытку. Тайм-аут составляет около 40 секунд. Вот как он делает большую часть мгновенного обновления. Однако они используют комбинацию методов. Подробнее о длинном опросе здесь.

http://en.wikipedia.org/wiki/Comet_(Программирование)

Закрыть X