Как GMail Chat может делать запросы AJAX без взаимодействия с клиентом? - PullRequest
59 голосов
/ 09 апреля 2009

Все ответы HTTP требуют, чтобы клиент инициировал их, даже те, которые сделаны с использованием AJAX. Но функция чата GMail может получать сообщения от других пользователей, даже когда я просто сижу в своем удобном компьютерном кресле и наблюдаю, но не взаимодействую с браузером. Как они это сделали?

Ответы [ 3 ]

42 голосов
/ 09 апреля 2009

Эта технология известна как "комета", но также как "серверный толчок", "обратный ajax" и т. Д.

Речь идет о передаче данных с сервера в браузер, поддерживая http-соединение живым. Более подробную информацию об этом можно найти в статье Википедии ( Английская версия ).

Также вот довольно хорошая презентация с Джо Уокером из DWR, где он рассказывает о комете.

8 голосов
/ 09 апреля 2009

Как вы правильно заметили, HTTP требует, чтобы данные были "извлечены" клиентом. Gmail все еще может «извлекать» данные с сервера, используя таймер для запуска операции HTTP вместо того, чтобы требовать от пользователя что-то щелкнуть. Таким образом, это может показаться автоматическим, но он все еще инициирован клиентом.

5 голосов
/ 09 апреля 2009

Да, кометы верны. Приложения Google Web Toolkit от Райана Дьюсбери объясняет, как создать приложение Instant Messenger на основе комет, в главе 9.

...