我需要接收的 xml 是:
<message id="qm5Dx8" to="adsfxcv" type="chat"from="adsf"
msgType="2"
thumbnail="randomThumbnail"
serverMediaURL="random"
isFromMe="1"
status="1"><body>Image</body><request xmlns='urn:xmpp:receipts'/></message>
消息正在发送者MyCustomMessage 扩展了 Message class.
在我的消息侦听器中,我需要获取数据包的位置是:
public void processPacket(Packet packet) {
String recivedPacket = packet.toXML();
try {
if (packet instanceof MyCustomMessage) {
MyCustomMessage msg = (MyCustomMessage) packet;
....
但我只收到消息标签中的 id、to、type 和 from 。数据包的实例也是消息的,它说,不能将数据包转换为消息。请指导我如何收到我想要的包裹。
你不能。另外你不应该延长Message
or Presence
class.
切勿将自定义值添加到指定的流元素属性(例如,消息的 type 属性的新值),并且切勿将新属性添加到顶级元素(就像您所做的那样)msgType
, msgTimeStamp
等等)。
这有可能破坏事物!不要这样做。也可以看看“XEP-0134:XMPP 设计指南 § 2.1 XMPP 是神圣的” http://xmpp.org/extensions/xep-0134.html#xmpp。这就是为什么这在 Smack 中是不可能的。相反,使用自定义扩展元素,如 xnyhps 在他的示例中所示(data
元素)。也可以看看“RFC 6120 § 8.4 扩展内容” http://xmpp.org/rfcs/rfc6120.html#stanzas-extended那些被称为数据包扩展 https://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/packet/PacketExtension.html在斯马克。
也可以看看这个答案 https://stackoverflow.com/a/26509393/194894和问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)