重新连接后,尝试将客户重新加入到特定房间

时间:2019-07-08 20:58:38

标签: xmpp ejabberd multiuserchat

我成功创建了muc服务并创建了一个房间。 创建会议室“ testroom@conference.xmpp.messenger.local”后,我与客户“ client@xmpp.messenger.local”一起进入会议室。 (我的客户也是muc会议室的所有者) 在这种情况下,它可以工作,我可以将任何消息发送到muc室。

如果我重新加载页面并重新连接到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 :(得分:0)

我解决了我的问题。 在将任何客户端连接到ejabberd服务器时,我必须选择一种资源。

我认为这不是必需的,但现在可以了。