2016-12-26 4 views
0

Мы используем IOS XMPP Framework и Android Smack Library для подключения нашего сервера ejabberd в нашем мобильном приложении. Оба они имеют аналогичную проблему.Ejabberd 16.09 Muc Discovery

Когда мы создаем комнату, как администратор, добавить пользователей в список участников, отправив ejabberd

<item affiliation='member' jid='[email protected]'> 

Затем пользователи могут отправлять и получать сообщения в группу без каких-либо проблем. И если пользователь удаляет приложение с устройства и переустанавливает его, мы используем протокол обнаружения muc, чтобы узнать, к каким комнатам он присоединился, прежде чем он удалит приложение.

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

И когда я проверяю консоль администратора, эти группы, как представляется, имеют 0 участников (поскольку все участники находятся в автономном режиме, но они находятся в списке участников). И я думаю, что открытие muc возвращает только группы, у которых более 0 участников

Кто-нибудь знает, почему это происходит и как я могу найти решение? @badlop

Мы используем ejabberd 16,09

ответ

0

Muc говорит, если пользователь переходит в автономном режиме, то он должен оставил всю свою группу, поэтому вы не получаете участник группы, когда пользователи переходят в автономном режиме. Смотрите здесь http://xmpp.org/extensions/xep-0045.html

Вместо использования MUC использования MUC-света https://xmpp.org/extensions/inbox/muc-light.html

Это поможет вам решить проблему и ее очень легко реализовать.