Постоянная связь с клиентом - PullRequest
11 голосов
/ 30 января 2009

Существует ли общий способ реализации части приложения с помощью JavaScript и обеспечения постоянного подключения к серверу? Мне нужно, чтобы сервер мог передавать данные клиенту, независимо от того, находится ли клиент за брандмауэром. Заранее спасибо

Ответы [ 5 ]

13 голосов
/ 30 января 2009

См. Комета - это как ajax, но оно держит соединение открытым, поэтому сервер может передавать информацию клиенту.

Обратите внимание, что совместимые браузеры будут удерживать только 2 соединения (примечание: большинство современных браузеров больше не соответствуют ) с конкретным доменом (по умолчанию), поэтому вы можете разделить свои домены (например, www.yourdomain). .com и comet.yourdomain.com), чтобы вы не сильно замедлили загрузку своих страниц. Или вы можете просто убедиться, что не открываете кометное соединение, пока все остальное не загружено. Просто нужно быть осторожным.

3 голосов
/ 30 января 2009

Вы должны заглянуть в комету:

http://ajaxian.com/archives/comet-a-new-approach-to-ajax-applications

2 голосов
/ 30 января 2009

Для этого вы можете использовать Comet методы программирования. По сути, страница выполняет вызов на сервер, который не возвращается до тех пор, пока серверу не будет что-то отправлять (в этот момент клиент немедленно делает такой же вызов). Таким образом, сервер может передавать содержимое клиенту практически в любое время.

Поддержка зависит от платформы и больше связана с сервером, чем с клиентом.

2 голосов
/ 30 января 2009

При использовании HTTP соединение должно начинаться с клиента. Но существуют методы, позволяющие серверу удерживать соединение открытым и сбрасывать данные по мере необходимости.

Обычно считается, что это Comet или HTTP Streaming архитектуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...