Как я могу опубликовать сообщение всем подписчикам Javascript для канала, использующего CometD? - PullRequest
0 голосов
/ 08 июля 2011

Для веб-приложения Java с использованием CometD, как я могу публиковать сообщения всем подписчикам канала каждый раз, когда сообщение обрабатывается bayeux?

Для тестирования я использовал serverSession.deliver(serverSession, "/test-channel", map, null);.

В результате мой клиент Javascript успешно подпишется, но получит сообщения только 1 из 10 попыток.Таким образом, в 90% случаев браузер не получает никаких сообщений, однако запись в журнале Bayeux (уровень 3) показывает, что они отправляются на правильный канал каждый раз.

Должен ли я использовать какую-либо формуклиентской сессии?Документация CometD кажется немного неясной.

1 Ответ

2 голосов
/ 08 июля 2011

Использование localSession, кажется, ответ.Я реализовал это, чтобы исправить:

ClientSessionChannel channel = localSession.getChannel(getClientChannel());
channel.publish(map);

Клиенты теперь получают все сообщения.

...