我们使用IOS XMPP Framework和Android Smack Library来连接移动应用程序中的ejabberd服务器。他们都有类似的问题。
当我们以管理员身份创建聊天室时,我们通过发送ejabberd将用户添加到成员列表中
<item affiliation='member' jid='xxx@yyy.com'>然后,用户可以毫无问题地向群发送和接收消息。如果用户从设备上删除应用程序并重新安装,我们将使用muc发现协议来发现他/她在卸载应用程序之前加入了哪些房间
然而,如果用户在组的所有参与者都离线时使用muc发现,则在这一点上存在问题。服务器不向用户返回关于该组的muc发现结果,因为他/她是该组的参与者。
当我检查管理控制台时,这些组似乎没有参与者(因为所有参与者都离线,但他们在成员列表中)。并且我认为muc发现只返回参与者超过0的组。
有人知道为什么会发生这种情况吗?我怎样才能找到解决方案?@badlop
我们使用的是ejabberd 16.09
发布于 2016-12-30 01:06:14
Muc说,如果用户离线,那么他应该离开他的所有群,这就是为什么当用户离线时,你得不到群参与者。查看此处http://xmpp.org/extensions/xep-0045.html
使用muc-light https://xmpp.org/extensions/inbox/muc-light.html代替muc
它将帮助您解决问题,并且非常容易实现。
https://stackoverflow.com/questions/41336289
复制相似问题