【问题标题】:Message Archiving Management on MongooseIM returning feature not implementingMongooseIM 返回功能的消息归档管理未实现
【发布时间】:2015-03-05 17:16:44
【问题描述】:

我已经编辑了MongooseIM的配置文件如下启用MAM

{mod_mam_odbc_prefs, [pm]},
{mod_mam_odbc_arch, [pm]},
{mod_mam_odbc_user, [pm]},
{mod_mam, []}

重新启动服务器后,当我发送一条消息时,它会存储在 MAM 的数据库表中(每条消息有 2 个条目,我不知道为什么)。

现在,当我发送一个 IQ 节来获取这些消息时,我收到“Feature Not Implemented”错误作为响应。

智商发送:

<iq type=”get” id=”page1″ to=”exampleserver.com”><query xmlns=”urn:xmpp:mam:tmp”/></iq>

当我尝试使用http://jabber.org/protocol/disco#info 发现功能时,我得到以下响应。

<feature var=”http://jabber.org/protocol/amp”/>
<feature var=”http://jabber.org/protocol/commands”/>
<feature var=”http://jabber.org/protocol/disco#info”/>
<feature var=”http://jabber.org/protocol/disco#items”/>
<feature var=”iq”/>
<feature var=”jabber:iq:last”/>
<feature var=”jabber:iq:register”/>
<feature var=”msgoffline”/>
<feature var=”presence”/>
<feature var=”presence-invisible”/>
<feature var=”urn:xmpp:carbons:1″/>
<feature var=”urn:xmpp:carbons:2″/>
<feature var=”urn:xmpp:mam:tmp”/>
<feature var=”urn:xmpp:ping”/>
<feature var=”urn:xmpp:sic:1″/>
<feature var=”vcard-temp”/>

【问题讨论】:

  • 您是否使用正确的命名空间发送 IQ?截至目前,MongooseIM 中的 MAM 支持 XEP 的 0.2 版(命名空间:urn:xmpp:mam:tmp)。也许您正在尝试使用 0.3 版(命名空间:urn:xmpp:mam:0)?
  • 我正在使用命名空间:urn:xmpp:mam:tmp。我已经分享了我发送的确切智商
  • 这是我发送的内容:
  • 啊,抱歉我的草率阅读。

标签: mongoose-im


【解决方案1】:

您将 IQ 寻址到 exampleserver.com,而您应该将其寻址到发件人的裸 JID(即 someuser@somedomain.com)或完全省略 to 属性 - 然后服务器将假定它指向发件人的裸 JID。 Section 10.3.3 of RFC-6120 描述了带有或不带有 to 属性的 IQ 的处理。 The basic query example from XEP-0313 在 IQ 元素中没有使用 to 属性。

【讨论】:

  • 感谢 erszcz 的帮助。我删除了 to 属性,现在可以接收所有存档的消息。有什么方法可以接收来自某个用户的消息。例如:用户A向用户B发送消息。用户B也向用户A发送消息。现在用户B可以只请求用户A发送给用户B的消息而不是所有消息吗?
  • 是的,有可能。请参阅我在答案中链接到的 XEP-0313。准确地说,MongooseIM 目前支持 XEP 0.2 版,可在此处获得:xmpp.org/extensions/attic/xep-0313-0.2.html
  • 是的,我确实读过,但我无法过滤消息。但我相信经过几次尝试我就能弄清楚。否则我会再次回复你:)
猜你喜欢
  • 2014-01-18
  • 2017-03-15
  • 2012-02-11
  • 1970-01-01
  • 2016-03-15
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
相关资源
最近更新 更多