erlang - 查询MUC房间归档消息
问题描述
我正在使用 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
推荐阅读
- node.js - Rabbit MQ amqplib 错误“没有可分配的通道”
- mongodb - 如何使用 Go 的 mongo 驱动程序在 Mongodb 查询上创建视图?
- angular - 如何在 AngularFire2 的 Firestore 中检索集合的文档 ID
- aws-lambda - 使用 lambda 函数集创建 SQS 动态
- amazon-web-services - 如何在 Amazon Rekognition 中启动流处理器
- angularjs - 在Angular js中选择下拉项目的上传按钮
- ruby - 通过某些键合并散列数组并合并其他键的值
- ios - 如何在 Swift 4 中将 UIImage 转换为字节数组
- linux - 如何从 WSL 中删除 Win10 的 PATH
- android - 随机背景加载 Gif