【问题标题】:Ejabberd 16.09 Muc DiscoveryEjabberd 16.09 Muc 发现
【发布时间】:2017-05-11 05:11:22
【问题描述】:

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

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

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

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

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

当我检查管理控制台时,这些组似乎有 0 个参与者(因为所有参与者都离线,但他们在成员列表中)。而且我认为 muc discovery 只返回参与者超过 0 的组

有谁知道为什么会发生这种情况,我该如何找到解决方案? @badlop

我们使用的是 ejabberd 16.09

【问题讨论】:

    标签: erlang xmpp ejabberd xmppframework ejabberd-module


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2018-10-23
      • 2017-01-11
      • 2017-01-18
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多