Сервер Openfire, множественное подключение, route.all-resources не работает

Мы используем http-bind с BOSH и Openfire (3.8.2) в качестве бэкэнда и библиотеку Strophe (JS) во внешнем интерфейсе для нашего чат-приложения.

Каждый пользователь получает указанный уникальный ресурс при подключении. Это означает, что пользователь может одновременно авторизоваться на разных устройствах/браузерах (множественное подключение, например, [email protected]/resource1, [email protected]/resource2 и т. д.). В идеале мы хотим, чтобы сообщения отправлялись на все подключенные ресурсы.

Ставим route.all-resources setting="true" и приоритет соединения одинаков для всех пользовательских ресурсов, но поведение ничуть не изменилось (сообщения в чате получают только последний подключенный пользовательский ресурс).

Может ли кто-нибудь предложить решения или идеи для решения этой проблемы?

Спасибо


person user3069454    schedule 05.12.2013    source источник
comment
Это также зависит от клиента, если клиент явно отправляет сообщение только одному ресурсу, то только этот ресурс получит его. Если вы отправите сообщение без него, вы сможете получить сообщение в обоих ресурсах.   -  person JP Illanes    schedule 28.03.2014


Ответы (1)


Вам может понадобиться route.all-resources или route.really-all-resources

route.really-all-resources = true отправит сообщение всем сеансам с неотрицательным приоритетом route.all-resources = true отправит сообщения всем сеансам с общим наивысшим неотрицательным приоритетом

Источник для этого находится по адресу https://github.com/igniterealtime/Openfire/blob/master/src/java/org/jivesoftware/openfire/spi/RoutingTableImpl.java#L567

person gdt    schedule 29.07.2016