【问题标题】:ejabberd MAM does not work for MUCejabberd MAM 不适用于 MUC
【发布时间】:2015-09-10 01:37:22
【问题描述】:

xep-0313 适用于花名册,但不适用于房间聊天。 我可以获取名册的存档消息,但我无法获取房间的存档消息,为什么?

<iq type='set' id='juliet1'>
  <query xmlns='urn:xmpp:mam:0'>
    <x xmlns='jabber:x:data' type='submit'>
       <field var='FORM_TYPE' type='hidden'>
           <value>urn:xmpp:mam:0</value>
       </field>
      <field var='with'>
         <value>roomJid@conference.host</value>
      </field>
   </x>
  </query>
</iq>

接收消息是:

<message xmlns="jabber:client" from="test3@192.168.1.67" to="test3@192.168.1.67/iPhone" id="dHS0oejBDWHp”>
 <fin xmlns="urn:xmpp:mam:0" complete="true”>
      <set xmlns="http://jabber.org/protocol/rsm”/>
 </fin>
 <no-copy xmlns="urn:xmpp:hints”/>
</message>

【问题讨论】:

    标签: xmpp ejabberd muc


    【解决方案1】:

    我猜你正在使用 ejabberd 贡献的模块。但是,官方 ejabberd 中添加了一个新的官方 MAM 模块,它支持最新版本的 MAM(截至今天为 0.4)和 MUC 归档。

    已在ejabberd 15.06 发布。您还可以直接访问来自 ejabberd Github 存储库的源代码。模块在这里:https://github.com/processone/ejabberd/blob/master/src/mod_mam.erl

    【讨论】:

    • 我将在接下来的几天内对此进行测试。我还编写了一个模块来挂钩 user_send_packet,在挂钩中,我将 MUC 消息存储在 SQL 中。然后提供一个 http API 来请求 MUC 消息。从客户端的角度来看,我使用 HTTP API 来查询 MUC 历史消息。
    • 请问您如何使用http API查询MUC历史消息?我正在尝试使用此 (stackoverflow.com/questions/31828955/…) 获取聊天室的历史记录,但它似乎只适用于个人用户
    • 你应该试试最新的 master 分支。它得到了很大改进,并坚持最新的规范。
    猜你喜欢
    • 2016-05-18
    • 2015-10-04
    • 1970-01-01
    • 2016-12-09
    • 2017-01-18
    • 2017-05-11
    • 2018-10-23
    • 2020-01-31
    • 2016-09-08
    相关资源
    最近更新 更多