#java #tomcat #push #comet
#java #tomcat #толкать #comet
Вопрос:
В настоящее время я работаю над веб-приложением, которому, возможно, потребуется «передать» информацию клиенту, и мне было интересно, каковы наилучшие способы реализовать это в среде Java / Tomcat. Я посмотрел на веб-сокеты, но, похоже, поддержка браузера все еще несколько отсутствует. В настоящее время я просматриваю org.apache.catalina.Интерфейс CometProcessor, но я хотел бы знать, есть ли у кого-нибудь хорошие рекомендации. Спасибо
Ответ №1:
рассматривали ли вы icefaces?
Ответ №2:
Приходилось решать аналогичную проблему в среде Javascript / Java (без Tomcat). Я использовал длинные опросы в качестве базовой технологии.
- Клиент опрашивает сервер
- Сервер поддерживает соединение максимальное количество времени (в моем случае 20 секунд)
- Если на стороне сервера запускается событие, уведомляются все обработчики клиентских подключений (клиенту отправляется сообщение) и длительный опрос заканчивается
- Если ничего не происходит, длинный опрос заканчивается пустым сообщением
- После завершения длительного опроса соединение запускается снова.
В моем случае мне пришлось позаботиться о некоторых прокси, у которых были проблемы с длительно открытыми http-соединениями без передачи данных. Итак, я выбираю 20 секунд в качестве максимального времени для поддержания открытой передачи http. В сочетании с http keep-alive вы также можете уменьшить количество подключений, которые открываются от одного клиента во время опроса.
Надеюсь, это поможет.