我正在使用 Smack 4.2 来实现一个相当基本的 XMPP 聊天客户端。我正在使用 Prosody XMPP 服务器。Prosody 对于在所有传入的节中要求“xmlns=jabber:client”是相当严格的。Smack 4.2 在其传出的节中不包含此属性。我尝试过扩展 Bind 和 Session 节,我可以使连接以这种方式工作。但是,现在我正在加入房间,我真的不想修改 Smack 的 MUC 代码,以便它可以接受修改后的 Presence 消息。
请帮忙!!
我正在使用 Smack 4.2 来实现一个相当基本的 XMPP 聊天客户端。我正在使用 Prosody XMPP 服务器。Prosody 对于在所有传入的节中要求“xmlns=jabber:client”是相当严格的。Smack 4.2 在其传出的节中不包含此属性。我尝试过扩展 Bind 和 Session 节,我可以使连接以这种方式工作。但是,现在我正在加入房间,我真的不想修改 Smack 的 MUC 代码,以便它可以接受修改后的 Presence 消息。
请帮忙!!
我不知道为什么 Prosody 服务器需要它,官方 XEP-0045 标准中没有关于它的内容https://xmpp.org/extensions/xep-0045.html#enter
也许有一种方法可以在 Prosody 方面以某种方式禁用它
Smack 4.3 确实为每个传出的 IQ 添加了 xmlns:https ://github.com/igniterealtime/Smack/blob/master/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java#L518
这样至少解决了 xmlns 问题。