ejabberd - 如何将居住者/用户添加到 MUC 房间?
问题描述
我MUC
使用ejabberd API
"create_room_with_opts"
. 我现在通过使用subscribe_room
带有 folowwingreq
和response
.
要求:
{
"user": "vishesh@dub/dummy",
"nick": "vish",
"room": "roomdub@conference.dub",
"nodes": "urn:xmpp:mucsub:nodes:messages,urn:xmpp:mucsub:nodes:affiliations,urn:xmpp:mucsub:nodes:subject,urn:xmpp:mucsub:nodes:presence"
}
回复:
[
"urn:xmpp:mucsub:nodes:messages",
"urn:xmpp:mucsub:nodes:affiliations",
"urn:xmpp:mucsub:nodes:subject",
"urn:xmpp:mucsub:nodes:presence"
]
但是当我列出它列出的居住人数为 0 时。我使用了“ get_room_occupants_number ” API,它具有以下 req 和 res。
要求:
{
"name": "roomdub",
"service": "conference.dub"
}
回复:
{
"occupants": 0
}
我无法理解为什么我没有看到我添加的用户?我错过了任何一步吗?
解决方案
一个账号可以是房间的“订阅者”,接收通知,也可以给房间发送消息。如https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/中所述
可替代地(或同时),该帐户可以是房间“占用者”,并且可以查看其他房间占用者的存在、他们如何加入和离开、接收消息、私人消息并且还可以发送它们。如https://xmpp.org/extensions/xep-0045.html中所述
所以,这句话是错误的:
我现在通过将用户订阅到房间来将用户添加到房间
您没有将用户“添加”到房间,因为毕竟我提到的任何协议中都没有定义这个概念。您正在将其“订阅”到某些房间事件。并且不会使他成为“居住者”。
推荐阅读
- javascript - 在 Twitter、Linkedin、Pinterest 和 Instagram 上分享计数
- android - 使 Glide 作为所有类的单例工作
- excel - 无法获取 WorkItem 中的自定义字段值
- python - 下拉字段显示所有用户的值
- node.js - nodejs中的异步构造函数
- mysql - Ansible playbook 在尝试执行 mysql 操作时卡住了
- java - 需要使用 if/else 语句在 For 循环中返回两个值
- python - 不断收到 django.db.utils.ProgrammingError: no results to fetch when running more than 4 processes
- python - 获取第三级或第四级 JSON 密钥的值
- python - 无法将表单字段设为只读