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

时间:2013-04-02 05:49:54

标签: xmpp openfire

我在我的服务中使用openfire作为聊天服务器。我需要在对话者开始或停止在聊天中输入消息时通知用户。

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

当用户开始输入时:

<message id="SD4Vy-8" to="682@server.com" type="notification_chat"><composing xmlns="http://jabber.org/protocol/chatstates"/></message>

当用户停止输入时:

<message id="SD4Vy-9" to="682@server.com" type="notification_chat"><paused xmlns="http://jabber.org/protocol/chatstates"/></message>

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

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

1 个答案:

答案 0 :(得分:5)

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

示例:

<message>
   <x xmlns="http://www.mycompany.com/extension1">
     <messagetype>notification_chat</messagetype>
   </x>
</message>