如何将 occupants/users 添加到 MUC 房间?

how to add occupants/users to a MUC room?

我使用 ejabberd API "create_room_with_opts" 创建了一个固定的 MUC 房间。我现在通过使用“subscribe_room”API 和 folowwing reqresponse 将用户订阅到房间来将用户添加到房间。

要求:

{
  "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,它具有以下要求和结果。

要求:

{
    "name": "roomdub",
    "service": "conference.dub"
}

回复:

{
    "occupants": 0
}

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

一个账号可以是一个房间"subscriber",可以接收通知,也可以给房间发消息。如https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/

中所述

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

中所述

所以,这句话是错误的:

I am now adding a user to the room by subscribing the user to the room

你不是 "adding" 房间的用户,因为毕竟我提到的任何协议都没有定义这个概念。你是 "subscribing" 参加一些房间活动的人。而且不会让他成为 "occupant".