如何将居住者/用户添加到MUC房间?

时间:2018-05-29 10:06:18

标签: ejabberd ejabberd-module ejabberd-api

我使用MUC ejabberd API创建了一个持久的"create_room_with_opts"会议室。我现在通过使用“subscribe_room”API订阅用户并将reqresponse添加到会议室,将用户添加到会议室。

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
}

我无法理解为什么我没有看到我添加的用户?我错过了任何一步吗?

1 个答案:

答案 0 :(得分:0)

帐户可以是房间“订户”,并接收通知,也可以向房间发送消息。如https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/

中所述

或者(或同时),帐户可以是房间“占用者”,并且可以看到其他房间居住者的存在,他们如何加入和离开,接收消息,私人消息并且还可以发送它们。如https://xmpp.org/extensions/xep-0045.html

中所述

所以,这句话错了:

  

我现在通过订阅用户到房间来添加用户

你并没有将用户“添加”到房间,因为毕竟这个概念没有在我提到的任何协议中定义。您正在“订阅”某些房间活动。而且不会让他成为“占有者”。