Какие протоколы TCP могут использоваться для обмена данными между клиентами? - PullRequest
1 голос
/ 06 августа 2009

Много раз клиенты запрашивают такие функции, как обмен мгновенными сообщениями (IM) и другие коммуникации между клиентами (P2P) для своих веб-приложений. Как обычно это делается в обычных веб-браузерах? Например, я видел демонстрации Google Wave (и Gmail), которые могут отправлять мгновенные сообщения из обычного браузера. Это через HTTP? Или XmlHttpRequest (AJAX) обеспечивает необходимый бэкэнд для такой связи?

Больше всего мне интересно, как сервер может "разбудить" удаленного клиента, скажем, для отправки чата? Или клиент должен продолжать "опрашивать" сервер сообщений для новых IM?

1 Ответ

3 голосов
/ 06 августа 2009

Обычно браузер опрашивает сервер на наличие новых сообщений. Один из подходов, который часто используется для повышения эффективности, - это « long poll » (см. Также this link ) - сервер немедленно отвечает, если у него есть что-либо; в противном случае он ждет, оставляя соединение открытым некоторое время. Если приходит сообщение, оно сразу же просыпается и отправляет его, в противном случае через несколько десятков секунд возвращается сообщение «Нет, вернитесь назад». Клиент немедленно набирает номер, чтобы вернуться в состояние длительного опроса.

...