Spark+Openfire二次开发Message类型汇总

在使用Spark+Openfire二次开发的时候,不免要涉及到Message包的处理。在openfire封装的packet中,对于Message的类型有如下这么几类:
1.Chat
2.Error
3.GroupChat
4.Headline
5.Normal
这里分别对每一种类型进行深入研究:
1.Chat
用途:标记发送单人聊天类型的消息。
举例XML:
<message from="cds003@lvhb" to="lvhb@lvhb" type="chat">
<body>测试消息!</body>
</message>

Spark端显示:


2.Error
用途:标记错误类型的消息。
举例XML:
<message from="我的聊天室@conference.lvhb" to="我的聊天室@conference.lvhb" type="error">
<body>测试消息!</body>
<error code="406" type="modify"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>
</message>
说明:此种类型的消息在Spark端没有任何反应。而且error消息为系统自动发送的,往往是由于错误发送消息,引起系统发送一个error类型的消息来提示spark之前发送的某一个消息是错的。
3.GroupChat
用途:标记发送群体聊天类型的消息。
举例XML:
<message id="H00c7-60" to="我的聊天室@conference.lvhb" type="groupchat" from="lvhb@lvhb/Spark 2.6.3">
<body>123123</body>
<x xmlns="jabber:x:event">
<offline/><delivered/><displayed/><composing/>
</x>
</message>
Spark端显示:


4.Headline
用途:标记通知类型的消息。
举例XML:
<message from="cds001@lvhb" to="lvhb@lvhb" type="headline">
<body>测试消息!</body>
</message>
Spark端显示:


5.Normal
用途:标记广播类型的消息。
举例XML:
<message from="cds001@lvhb" to="lvhb@lvhb" type="normal">
<body>测试消息!</body>
</message>
Spark端显示:


 
小结:chat类型是最常见的类型。Groupchat用来标记群组消息。Error用来标记错误的消息,如我刚才编的那个群组消息可能有误,这时候服务器就反馈了一个error类型的消息。至于Headline和Normal这2个翻译过来一个叫通知、一个叫广播,也许可以随意使用。或者分场合使用,比如通知员工开会,那么用headline感觉就比normal要好,但是normal也不是不可以。就是这样。


版权声明:本文为robert8803原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。