Как чат GMail может отправлять AJAX-запросы без взаимодействия с клиентом?

StackOverflow https://stackoverflow.com/questions/732705

  •  06-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Эта технология известна как "comet", но также как "server push", "reverse ajax" и т.д.

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top