我们正在使用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
答案 0 :(得分:0)
Muc说,如果用户离线,那么他应该离开他所有的小组,这就是为什么当用户离线时你没有得到小组参与者的原因。 看这里 http://xmpp.org/extensions/xep-0045.html
而不是使用muc使用muc-light https://xmpp.org/extensions/inbox/muc-light.html
它将帮助您解决问题,并且非常容易实施。