как добавить жителей / пользователей в комнату MUC? - PullRequest
0 голосов
/ 29 мая 2018

Я создал постоянную MUC комнату, используя ejabberd API "create_room_with_opts".Теперь я добавляю пользователя в комнату, подписывая пользователя на эту комнату с помощью API-интерфейса "subscribe_room" с folowwing 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
}

Я не могу понять, почему я не вижупользователя я добавил?Я что-то пропустил?

1 Ответ

0 голосов
/ 30 мая 2018

Учетная запись может быть комнатой подписчика, получать уведомления, а также отправлять сообщения в комнату.Как описано в https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/

В качестве альтернативы (или одновременно), учетная запись может быть «обитателем» комнаты и может видеть присутствие других обитателей комнаты, то, как они присоединяются и выходят, получают сообщения, личные сообщения и могути отправь их.Как описано в https://xmpp.org/extensions/xep-0045.html

Итак, это предложение неверно:

Я сейчас добавляю пользователя в комнату, подписав пользователя на комнату

Вы не «добавляете» пользователя в комнату, потому что в конце концов это понятие не определено ни в одном из протоколов, которые я упомянул.Вы «подписываетесь» на некоторые события в комнате.И не делает его «обитателем».

...