【问题标题】:Openfire kicks me when I send <composing/> or <paused/> with a custom message type当我使用自定义消息类型发送 <composing/> 或 <paused/> 时,Openfire 会踢我
【发布时间】:2013-04-02 05:49:53
【问题描述】:

我在我的服务中使用 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踢我是这种情况?

【问题讨论】:

    标签: xmpp openfire


    【解决方案1】:

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

    示例:

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

    【讨论】:

    • 我不能使用聊天类型来输入通知,老客户接受所有聊天类型的消息并将其显示给用户。我需要新的消息类型。是否可以为新类型配置服务器?
    • 正如我上面所说,只允许以下类型:正常、聊天、群聊、标题、错误。不允许自定义类型,因为这是违反协议并导致您的服务器断开连接。
    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2021-03-27
    相关资源
    最近更新 更多