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