Уведомление браузера о событиях на сервере - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть веб-приложение на основе Java (Struts 1.2). У меня есть требование для отображения статуса на веб-интерфейсе (JSP). Теперь статус может измениться, и мой сервер получает уведомление от другого сервера. Но я хочу, чтобы об этом изменении статуса было сообщено браузеру.

Я не хочу делать обновления с интервалами. Скорее я должен реализовать что-то вроде сделано в чате Gmail, т.е. браузер получает уведомление об изменении событий на сервере.

Есть идеи, как это сделать?

Я думал о том, как открыть запрос к серверу о статусе, и на конце сервера я удерживал запрос и не отвечал до тех пор, пока не произойдет изменение статуса. Любые указатели, примеры по этому поводу?

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Лучшим возможным решением будет использование протокола XMPP. Он стандартизирован, и многие решения с открытым исходным кодом помогут вам начать работу в течение нескольких минут. Вы можете использовать комбинацию Smack , StropheJS и Openfire , чтобы заставить ваше приложение на основе Java работать по желанию.

1 голос
/ 15 декабря 2010

Есть метод Long Polling (Comet). Это в основном отправляет запрос на сервер. Поток запросов, созданный на сервере, просто ожидает новых данных для пользователя с ограничением по времени, возможно, 1 минута или более. Когда новые данные доступны, они возвращаются.

Основная проблема заключается в решении проблемы на стороне сервера, вы не хотите иметь один поток для каждого пользователя, ожидающего новых данных. Конечно, вы можете использовать некоторые асинхронные методы в зависимости от вашего бэкенда.

Ссылка: http://en.wikipedia.org/wiki/Push_technology

Альтернативным способом было бы использование WebSockets. Проблема в том, что сегодня он поддерживается не всеми браузерами.

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