【发布时间】:2018-10-18 05:38:20
【问题描述】:
我正在使用 ejabberd 18.01 开发聊天应用程序
在检索 MUC 房间消息时,有什么方法可以找到消息所有者 jid?
<x xmlns="http://jabber.org/protocol/muc#user"><item jid="romeo@lit.com/desktop"/></x>
房间管理员检索消息时,上面的xml是消息xml的一部分,但所有者是房间其他参与者的消息不包含x标签。
【问题讨论】:
我正在使用 ejabberd 18.01 开发聊天应用程序
在检索 MUC 房间消息时,有什么方法可以找到消息所有者 jid?
<x xmlns="http://jabber.org/protocol/muc#user"><item jid="romeo@lit.com/desktop"/></x>
房间管理员检索消息时,上面的xml是消息xml的一部分,但所有者是房间其他参与者的消息不包含x标签。
【问题讨论】:
所有者是房间其他参与者的消息,不包含x标签。
仔细阅读https://xmpp.org/extensions/xep-0313.html#business-storeret-muc-archives的这段话
在非匿名房间的情况下,或者如果 MUC 存档的接收者在查询时有权访问发送者的真实 JID,存档消息将使用由 ' 限定的元素中的扩展消息信息http://jabber.org/protocol/muc#user' 命名空间并包含一个具有 'jid' 属性的子级,该属性指定住户的完整 JID,如多用户聊天 (XEP-0045) [10] 中为非匿名房间存在所定义的那样。
实际上,这意味着您必须配置房间并设置此选项:
将真实的 Jabber ID 提供给:任何人
或者,如果您希望在所有新房间中都使用此功能,请在 ejabberd.yml 中进行配置
modules:
mod_muc:
default_room_options:
anonymous: false
【讨论】: