Можно ли отправлять серверы на все подключенные клиенты, не дожидаясь каких-либо действий? Позвольте мне объяснить это :-) Я читал docs/examples, и я не нашел ничего, что удовлетворило бы мои потребности: поток всегда один и тот же; клиент подключается (например: GET-вызов к API-интерфейсу Rest), соединение приостанавливается и до тех пор, пока не будет получен новый вызов API (например: POST-вызов), сервер просто ждет (или, по крайней мере, это то, что я понял). Мой вариант использования совсем другой: я хочу, чтобы сервер отправлял несколько «уведомлений», когда новые данные становятся доступными. Это будет мой случай использования (довольно упрощенный):Atmosphere Jersey - Серверные сообщения
- Клиент A подключается к серверу
- Подключение приостановлено, поскольку новые данные не будут доступны в данный момент
- Сервер получает уведомление новые данные доступны из внешний источник и вещает, чтобы это клиент а
- Перейти к шагу 2
То, что я достиг до сих пор получает соединение успешно установлено. Следующим шагом будет решение этой проблемы сервера. Я должен сказать, что эта технология для меня совершенно новая, так что, возможно, я неправильно понял, как что-то работает. Если это так, дайте мне знать!
Это мой стек:
- Spring 3.2.0 RELEASE
- Джерси 1,8
- Атмосфера Джерси 1.0.13
- Tomcat 7.0.40
Спасибо всем заранее!
UPDATE: После выполнения this я получаю это предупреждение, что я понятия не имею, как избавиться от:
2013-06-04 09:40:36,284 WARN [org.atmosphere.cpr.AtmosphereFramework] - Failed using comet support: org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket, error: Tomcat failed to detect this is a Comet application because context.xml is missing or the Http11NioProtocol Connector is not enabled.
If that's not the case, you can also remove META-INF/context.xml and WEB-INF/lib/atmosphere-compat-tomcat.jar Is the Nio or Apr Connector enabled?
2013-06-04 09:40:36,285 WARN [org.atmosphere.cpr.AtmosphereFramework] - Using org.atmosphere.container.Tomcat7BIOSupportWithWebSocket
Я следовал структура приложения прокомментировал here, так что это не должно быть проблемой. Я заметил, что при изменении транспорта на «websocket» вместо «long-polling» не отображаются ошибки. Сервер, наконец, отправляет данные жестко :)