当我使用自定义消息类型发送<composing />或<paused />时,Openfire会踢我

Nik*_*Nik 1 xmpp openfire

我在我的服务中使用openfire作为聊天服务器.当对话者启动或停止在聊天中输入消息时,我需要通知用户.

我添加自定义消息类型notification_chat并发送带有或没有正文的附加信息:

用户开始输入时:

<message id="SD4Vy-8" to="682@server.com" type="notification_chat"><composing xmlns="http://jabber.org/protocol/chatstates"/></message>
Run Code Online (Sandbox Code Playgroud)

当用户停止输入时:

<message id="SD4Vy-9" to="682@server.com" type="notification_chat"><paused xmlns="http://jabber.org/protocol/chatstates"/></message>
Run Code Online (Sandbox Code Playgroud)

但发送此包后openfire关闭连接!尽管此消息已发送给收件人,但我可以按类型和附加信息处理它.

为什么openfire会踢我这种情况?

Ale*_*lex 5

你因为违反了XMPP规范而被踢了.不允许向消息添加新类型.您只能使用RFC中定义的类型(正常,聊天,群聊,标题,错误).当您需要自定义信息时,请在您自己的命名空间中将自己的标记添加到消息中

例:

<message>
   <x xmlns="http://www.mycompany.com/extension1">
     <messagetype>notification_chat</messagetype>
   </x>
</message>
Run Code Online (Sandbox Code Playgroud)