【发布时间】:2019-11-18 09:58:27
【问题描述】:
我成功创建了 muc 服务并创建了一个房间。 创建房间“testroom@conference.xmpp.messenger.local”后,我和我的客户“client@xmpp.messenger.local”进入房间。 (我的客户也是 muc room 的主人) 在这种情况下,它可以工作,我可以向 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>
至少我尝试使用不同的昵称进入房间,但这会导致立即断开连接而没有任何错误消息。
我希望其他人能找出问题并帮助我找到解决方案。
【问题讨论】:
-
您应该提及您使用的 ejabberd 版本。此外,这种行为看起来很奇怪,因此它可能是您未提及的 mod_muc 中的一些自定义配置。最后,当您使用自定义客户端时,该客户端可能不希望出现这种情况,因此您应该尝试使用知名客户端(如 Gajim 或 Psi),并将其发送的 XMPP 节与您的客户端进行比较。跨度>
-
感谢您的回复我正在使用 ejabberd 版本 18.12 和以下 xmpp bosh 客户端:github.com/kdcro101/xmpp-bosh-client 您是指我创建房间时的配置还是在我的配置文件中?
标签: xmpp ejabberd multiuserchat