Все ответы HTTP требуют, чтобы клиент инициировал их, даже те, которые были сделаны с использованием AJAX. Но функция чата GMail позволяет получать сообщения от других пользователей, даже когда я просто сижу в своем удобном компьютерном кресле, но не взаимодействую с браузером. Как они это делают?Как GMail Chat может делать запросы AJAX без взаимодействия с клиентом?
ответ
Это технология известна как «комета», но и как «сервер толчок», «обратный Аякса» и т.д.
Это о подталкивании данных от сервера к браузеру, сохраняя соединение HTTP живы. Узнайте больше об этом на wikipedia article (English version).
Также есть pretty good presentation с Джо Уокером из DWR, где он рассказывает о кометах.
Знаете ли вы, какой метод использует Gmail? Скрытый IFrame, XMLHttpRequest? – chat
@chat посмотреть источник? –
Возможно, ссылка на английскую версию Википедии? –
Как вы по праву отметили, HTTP требует, чтобы данные были «вытащены» клиентом. Gmail все еще может «вытащить» данные с сервера, используя таймер для запуска операции HTTP вместо того, чтобы требовать от пользователя щелчка. Таким образом, это может показаться автоматическим, но оно по-прежнему инициировано клиентом.
Я слышал, что они используют комету. Это не клиентский запрос AFAIK –
Я вижу. Сегодня узнал что-то новое. Благодаря! – sybreon
Комета по-прежнему инициирована клиентом AFAIK - это просто, что сервер держит соединение открытым, пока у него не получится что-то интересное, вместо того, чтобы немедленно вернуть ответ. –
Yep Comets является правильным. Google Web Toolkit Applications by Ryan Dewsbury объясняет, как создать приложение Instant Messenger на основе Comets в главе 9.
Вопрос: что такое стратегия опроса AJAX, используемая Gmail для реализации клиента чата? – Jimmy
wow вы практически переписали вопрос. –
@Pablo: да ... довольно уверен, что это то, о чем он просил, но не понял этого, пока я уже не ответил, поэтому я хотел его почистить, прежде чем кто-то другой допустил ту же ошибку. – Shog9