You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法加入ejabberd公开MUC房间问题求助

解决XMPP MUC加入时“昵称不能为空”的错误

问题原因

你当前的请求使用了<nick xmlns="http://jabber.org/protocol/nick">元素传递昵称,但XMPP MUC(多用户聊天)的房间加入规范中,服务器不会识别这个单独的全局昵称元素,而是要求通过标准方式传递房间昵称。

解决方法

方法1:在to属性中指定昵称(推荐)

将昵称作为房间JID的资源部分,直接拼在to属性值末尾:

<presence from="myJid@chatserver.com" to="roomname@conference.chatserver.com/MyNickname" id="17cb115c-2a7a-4aa6-8498-458a14c13f4d">
</presence>

方法2:通过MUC扩展元素传递昵称

保留原to属性,在<x xmlns="http://jabber.org/protocol/muc">扩展标签内添加<nick>子元素:

<presence from="myJid@chatserver.com" to="roomname@conference.chatserver.com" id="17cb115c-2a7a-4aa6-8498-458a14c13f4d">
    <x xmlns="http://jabber.org/protocol/muc">
        <nick>MyNickname</nick>
    </x>
</presence>

补充说明

<nick xmlns="http://jabber.org/protocol/nick">属于XEP-0172定义的全局昵称扩展,用于在整个XMPP网络中标识用户的通用昵称,而非MUC房间内的专属昵称,因此MUC服务器不会读取该元素的值,导致返回“昵称不能为空”的错误。

内容的提问来源于stack exchange,提问作者Kunto Fullstack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:17:10