Ejabberd 16.09 Muc Discovery

时间:2016-12-26 21:07:50

标签: erlang xmpp ejabberd xmppframework ejabberd-module

我们正在使用IOS XMPP Framework和Android Smack Library在我们的移动应用程序中连接我们的ejabberd服务器。 他们俩都有类似的问题。

当我们以管理员身份创建会议室时,我们会通过发送ejabberd

将用户添加到会员列表中
<item affiliation='member' jid='xxx@yyy.com'>

然后,用户可以毫无问题地向群组发送和接收消息。 如果用户从设备中删除应用程序并重新安装,我们将使用muc发现协议来发现他/她在卸载应用程序之前加入了哪些房间

但是此时存在问题,如果用户在该组的所有参与者都离线时使用muc发现。服务器不会将该组的muc发现结果返回给用户,因为他/她是其参与者。

当我检查管理控制台时,这些组似乎有0个参与者(因为所有参与者都处于脱机状态,但他们在成员列表中)。我认为muc发现只返回参与者数超过0的组

有谁知道为什么会这样,我怎样才能找到解决方案? @badlop。

我们正在使用ejabberd 16.09

1 个答案:

答案 0 :(得分:0)

Muc说,如果用户离线,那么他应该离开他所有的小组,这就是为什么当用户离线时你没有得到小组参与者的原因。 看这里 http://xmpp.org/extensions/xep-0045.html

而不是使用muc使用muc-light https://xmpp.org/extensions/inbox/muc-light.html

它将帮助您解决问题,并且非常容易实施。