Как можно реализовать что-то вроде BOSH с помощью Java-сервлетов? - PullRequest
3 голосов
/ 05 июня 2010

BOSH (двунаправленные потоки поверх синхронного HTTP) - это хитрый способ реализации двусторонней связи между клиентом и сервером в ситуациях, когда истинное продвижение сервера не разрешено, что, очевидно, позволяет серверу передавать данные клиенту браузера без необходимости опроса клиента.

Это работает, когда клиент отправляет запрос на сервер, и сервер не отвечает сразу ... скорее он запоминает запрос, но отвечает только тогда, когда у него есть данные для отправки. Когда это происходит, клиент немедленно отправляет другой запрос, так что на сервере фактически всегда есть «сохраненный запрос», готовый передать данные клиенту.

По крайней мере, так я думаю это работает!

Обновление : Мой вопрос заключается в том, как вы можете сделать это, используя стек Java EE, т.е. стандартные сервлеты. Возможно ли это с помощью, скажем, Servlet 2.x (я немного заржавел, поэтому я не знаю, можете ли вы отказаться от отправки ответа или чего-то в этом роде) или только с использованием расширений через оболочку, такую ​​как Atmosphere?

Ответы [ 3 ]

3 голосов
/ 22 апреля 2011

Я думаю, это то, что вы можете искать: http://blog.jwchat.org/jhb/

3 голосов
/ 06 июня 2010

Не эквивалентно, но Servlet 3.0 представляет Асинхронный API. С сервлетом 3.0 или без него существует также Атмосфера .

Смотри также

1 голос
/ 06 июня 2010

Может быть, вы ищете что-то вроде комета , своего рода обратный AJAX, в котором клиент инициирует соединение, позволяя серверу передавать данные в любое время.

РЕДАКТИРОВАТЬ : я понимаю, что вы ищете решения для Java , и когда мы думаем об AJAX, мы сразу же думаем о JavaScript , но этот термин был испорчен в последнее время, и это представляет собой концепцию больше, чем решение JavaScript. Comet очень похож на AJAX и может быть реализован на любом языке программирования.

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