Erlang Ejabberd 16.09 Muc发现

Erlang Ejabberd 16.09 Muc发现,erlang,xmpp,ejabberd,xmppframework,ejabberd-module,Erlang,Xmpp,Ejabberd,Xmppframework,Ejabberd Module,我们正在使用IOS XMPP框架和Android Smack库连接移动应用程序中的ejabberd服务器。 他们都有类似的问题 当我们以管理员的身份创建文件室时,我们通过发送ejabberd将用户添加到成员列表中 <item affiliation='member' jid='xxx@yyy.com'> 然后用户就可以毫无问题地向组发送和接收消息。 如果用户从设备中删除应用并重新安装,我们将使用muc发现协议来发现他/她在卸载应用之前加入了哪些房间 但是,如果用户在组的所有参与

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

当我们以管理员的身份创建文件室时,我们通过发送ejabberd将用户添加到成员列表中

<item affiliation='member' jid='xxx@yyy.com'>

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

但是,如果用户在组的所有参与者脱机时使用muc发现,此时会出现问题。服务器不会将有关该组的muc发现结果返回给用户,因为用户是该组的参与者

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

有人知道为什么会发生这种情况吗?我怎样才能找到解决办法@坏蛋


我们使用的是ejabberd 16.09

Muc说,如果用户脱机,那么他应该离开他的所有组,这就是为什么当用户脱机时,您不能获得组参与者。 看这里

使用muc灯代替muc灯

它将帮助您解决这个问题,并且非常容易实现