Какие технологии используются на кажущемся "живом" управляемом данными веб-сайте?

Возможно, заголовок можно перефразировать немного лучше, но в основном мне интересно, как на Facebook реализован "живой" интерфейс в отношении новых уведомлений / сообщений и т. Д. Я знаю, что сложность такой социальной сети слишком велика для обсуждения в этом небольшом SO-потоке, но если у кого-то есть представление о технологиях, используемых для немедленного уведомления своих пользователей о новых записях (я предполагаю записи в БД), то мне было бы интересно услышать это.

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

2 ответа

Решение

Это через Comet и длинный опрос через node.js или аналогичные веб-серверы, не основанные на потоках.

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

Вы частично правы. Клиент открывает соединение, а сервер отвечает только тогда, когда ему есть что вернуть клиенту.

Я думаю, что они пытаются использовать HTML5 WebSockets, но в качестве запасного варианта они используют Comet, AJAX, Long pooling с хорошим бэкэндом.

Другие вопросы по тегам