我使用MUC
ejabberd API
创建了一个持久的"create_room_with_opts"
会议室。我现在通过使用“subscribe_room
”API订阅用户并将req
和response
添加到会议室,将用户添加到会议室。
REQ的:
{
"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"
}
RES:
[
"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
}
我无法理解为什么我没有看到我添加的用户?我错过了任何一步吗?
答案 0 :(得分:0)
帐户可以是房间“订户”,并接收通知,也可以向房间发送消息。如https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/
中所述或者(或同时),帐户可以是房间“占用者”,并且可以看到其他房间居住者的存在,他们如何加入和离开,接收消息,私人消息并且还可以发送它们。如https://xmpp.org/extensions/xep-0045.html
中所述所以,这句话错了:
我现在通过订阅用户到房间来添加用户
你并没有将用户“添加”到房间,因为毕竟这个概念没有在我提到的任何协议中定义。您正在“订阅”某些房间活动。而且不会让他成为“占有者”。