Система уведомлений Facebook: это опрос? - PullRequest
2 голосов
/ 24 сентября 2010

Уведомление, когда пользователь первый вход в систему, не так сложно, просто требуется сканирование базы данных, я могу с этим справиться.Однако когда друг отправляет запрос или комментирует профиль X, уведомление отправляется, и почти сразу же получается на другом конце, даже когда пользователь X не делает никакого запроса.Это опрос?Не хочется, так как страница никогда не обновляется сама.Это должно быть что-то еще?У кого-нибудь есть идеи?может быть Web Push?

Ответы [ 2 ]

9 голосов
/ 24 сентября 2010

Facebook использует длинные опросы.

Пока вы находитесь на своей странице, у них есть скрипт, постоянно выдающий запросы на определенный URL. Вместо немедленного ответа сервер, обрабатывающий этот URL-адрес, сначала ожидает поступления сообщения в свою очередь, а затем отправляет это сообщение пользователю. Если истекло определенное время ожидания, сервер отвечает, не отправляя сообщения, и клиентский скрипт выполняет другой запрос на этот URL.

Чтобы увидеть это в действии, откройте вкладку Net в Firebug на странице Facebook и подождите пару минут. Вы должны увидеть запросы, которые длятся в течение минуты, а затем сопровождаются новым запросом.

1 голос
/ 24 сентября 2010

Я считаю, что для этого они используют AJAX / Javascript.Это позволило бы странице получать информацию с сервера и отображать ее без перезагрузки страницы.Вы должны быть в состоянии сделать это с помощью библиотеки AJAX, такой как JQuery или чего-то подобного.Что касается того, действительно ли Facebook использует push или опрос, я понятия не имею, но вы можете получить аналогичное поведение, опросив AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...