Попытайтесь присоединиться к клиенту в определенной комнате после повторного подключения - PullRequest
0 голосов
/ 08 июля 2019

Я успешно создал сервис muc и ​​создал комнату. После того, как я создаю комнату «testroom@conference.xmpp.messenger.local», я захожу в комнату с моим клиентом «client@xmpp.messenger.local». (Мой клиент также является владельцем комнаты) в этом случае это работает, и я могу отправлять любые сообщения в Muc Room.

Моя проблема возникла, если я перезагрузил страницу и снова подключился к своему серверу ejabberd. После переподключения я читаю все комнаты клиента и пытаюсь присоединиться к комнате со следующим разделом присутствия (описанным в XEP-0045 // 16.7.1):

<presence to='testroom@conference.xmpp.messenger.local'>
  <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

Теперь я получаю код ошибки 409, который содержит следующее сообщение об ошибке: «Этот ник зарегистрирован другим человеком»

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

Кстати, я также попытался повторно войти с:

<presence
    from='client@xmpp.messenger.local'
    id='n13mt3l'
    to='testroom@conference.xmpp.messenger.local'>
  <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

По крайней мере, я пытался войти в комнату с разными никами, но это вызывает мгновенное отключение без какого-либо сообщения об ошибке.

Я надеюсь, что кто-нибудь еще сможет выяснить проблему и помочь мне найти решение.

1 Ответ

0 голосов
/ 10 июля 2019

Я решил свою проблему. При подключении любого клиента к серверу ejabberd мне пришлось выбирать ресурс.

Я думал, что это не обязательно, но теперь это работает.

...