"Прослушивание" сервера ВКонтакте

Привет, Хабрахабр!
Недавно на сайте ВКонтакте просматривая его с включенным Firebug заметил то, что для меня пока остается загадкой. Надеюсь вы поможете мне разобраться.

И так, суть — на всех страницах сайта висит запрос по 25 секунд который прослушивает сервер на события. Если приходит сообщение или вам написали на «стене», то запрос немедленно завершается, выводится уведомление и сразу запускается новый.

Вопрос: какие технологии для этого используются серверные и клиентские :) Читал про node.js, он ли это?
Скрин с firebug чтобы понятно было о чем речь — easycaptures.com/fs/uploaded/458/9381837811.jpg

UPD Скрин заголовков — easycaptures.com/fs/uploaded/458/3646484634.png
  • Вопрос задан
  • 3839 просмотров
Решения вопроса 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Такие запросы в общем случае называются long polling. Способы реализации, думаю, сами уже найдете или тут подскажут. У меня почему-то одна из ассоциаций с этим — comet.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Там используется Long Polling как уже писали. Механика такая — JS подключается к Web-сереру, но сервер сразу же не дает ответ (если данных нет), а просто ждет. Если поступает какое то сообщение, которое необходимо передать клиенту — сервер отдает его. Если сообщений нет — то клиент все равно раз в 25 секунд переподключается к серверу — для надежности, проверки связи.
Реализовать на стороне сервера это можно по разному, например на nginx:
highload.com.ua/index.php/2010/07/21/используем-nginx-как-long-polling-comet-сервер/
Ответ написан
Carzil
@Carzil
Нет, на клиенте — это не node.js, а ajax. На сервере, скорее всего, PHP. Можно узнать, посмотрев передаваемые заголовки.
Ответ написан
Комментировать
gabriell
@gabriell
Ajax каждые 25 секунд стучится по адресу, который передает параметры и если они не пустые выводиться кастомный jGrowl
Ответ написан
@fso
Да, как выше вам подсказали, это long polling comet. ИМХО, самый простой механизм, позволяющий реализовать медленные запросы — это DkLab_Realplexor Дмитрия Котерова. Посоветовал бы изучение «вживую» начать с него. Написан на перле. Примеры и описания есть по ссылке http://dklab.ru/lib/dklab_realplexor/
Ответ написан
@joger
а вам для каких целей? а то есть ещё библиотека socket.io. для «стены» она немного тяжеловата, а вот для reak-time самое то
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы