【问题标题】:ejabberd MUC Archive Management Query Responseejabberd MUC 存档管理查询响应
【发布时间】:2016-04-17 05:35:03
【问题描述】:

我正在使用 ejabberd 15.09 并为服务器配置中的每个 MUC 启用存档管理,如下所示:

mod_mam:
    default: always
 mod_muc:
    ## host: "conference.@HOST@"
    access: muc
    access_create: muc_create
    access_persistent: muc_create
    access_admin: muc_admin
    default_room_options:
      mam: true
      persistent: true
      public: true

此外,对 Ejabberd 管理面板的检查显示,随着每条消息发送到 MUC 后归档表中的元素数量增加,消息正在被归档。这是验证是否为会话启用了归档。

为了从 MUC 向服务器查询消息存档,我发送了这个 iq 数据包:

<iq type='set' id='testid1'>
      <query xmlns='urn:xmpp:mam:1'>
        <x xmlns='jabber:x:data' type='submit'>
           <field var='FORM_TYPE' type='hidden'>
               <value>urn:xmpp:mam:1</value>
           </field>
          <field var='with'>
             <value>testmyroomnow@conference.ip/</value>
          </field>
       </x>
      </query>
    </iq>

从服务器收到的响应不包含任何消息。

<message from='user@ip' to='user@ip/Gajim'>
<fin xmlns='urn:xmpp:mam:0' complete='true'>
<set xmlns='http://jabber.org/protocol/rsm'>
<count>0</count>
</set>
</fin>
</message>

这个 MUC 已经包含一些消息,但是像上面这样的查询没有返回任何消息。 xml 节的格式似乎不正确。为会议发送 JID 的格式不正确或其他原因。

不知道该怎么做,因为我已经在使用最新版本的 Ejabberd,它显示支持 MUC 存档。除了我在这里做的事情,我不知道如何从 ejabberd 服务器查询 MUC 存档。

【问题讨论】:

  • 感谢您突出显示mam 选项!

标签: xmpp archive ejabberd muc


【解决方案1】:

您需要查询 MUC 服务以获取 MUC 存档。用户 MAM 服务仅存储一对一对话的消息。

还请注意,您使用的不是最新的 ejabberd。截至今天,最新版本是 15.11。我建议您使用有关 MAM MUC 的最新版本,因为已对 XEP-0313 进行了一些澄清,并已添加到最新的 ejabberd 中。

这是示例查询,将 MAM 查询节发送到 MUC 房间本身:

<iq type='set' id='juliet1' to='tech@conference.process-one.net'>
  <query xmlns='urn:xmpp:mam:0' queryid='f27'>
  <set xmlns='http://jabber.org/protocol/rsm'>
        <max>10</max>
      </set>
  </query>
</iq>

【讨论】:

  • 你指的是查询 MUC 存档,我需要发送使用 'to' 属性的值作为目标 JID ()?如果我这样做,我会收到功能未实现的错误。这是否意味着未进行 MUC 存档?这是令人困惑的,因为数据库条目显示正在归档。另外要将最新版本升级到15.11,是否可以在不重新启动或停止当前正在运行的版本的情况下进行升级?因为如果我通过停止/重新启动来升级,我会将房间历史记录中的所有消息都存储在 RAM 中。
  • 是的,不幸的是 XEP 没有示例。但是,您需要将节发送到 MUC 房间本身并确保您使用 ejabberd 15.11。它之前是用自定义节实现的,因为当我们第一次实现它时,XEP 没有涵盖用例。
  • 在不停止服务器的情况下无法升级到 ejabberd 15.11。
  • 好的。谢谢。我现在将升级到 15.11 并报告它是否有效。
  • 刚刚全新安装了 15.11。当我将 To 属性指定为目标 JID () 时,它会给出相同的 Feature Not Implemented 错误。 501 错误代码。这一次存档表也在更新,正如我从管理面板中看到的那样,这表明 MUC 存档正在工作。您能否发布需要发送查询的 xml 节? XEP 文档确实不够用。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-03-25
  • 2016-12-09
  • 2016-08-26
  • 2018-10-18
  • 2017-05-11
  • 2018-10-23
  • 2016-03-15
  • 2017-01-11
相关资源
最近更新 更多