Какие протоколы TCP можно использовать для связи между клиентами?

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

Вопрос

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

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

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

Решение

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

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