我在我的服务中使用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会踢我这种情况?
答案 0 :(得分:5)
你因为违反了XMPP规范而被踢了。不允许向消息添加新类型。您只能使用RFC中定义的类型(正常,聊天,群聊,标题,错误)。 当您需要自定义信息时,请在您自己的命名空间中将自己的标记添加到消息中。
示例:
<message>
<x xmlns="http://www.mycompany.com/extension1">
<messagetype>notification_chat</messagetype>
</x>
</message>