使用 Smack 接收自定义 XMPP 节

Posted

技术标签:

【中文标题】使用 Smack 接收自定义 XMPP 节【英文标题】:Receive custom XMPP stanzas with Smack 【发布时间】:2013-08-12 11:04:34 【问题描述】:

我正在尝试在消息包中接收 XMPP 自定义节。例如,

<message ...>
    <custom_stanza>
        <foo>wololo</foo>
        <bar>haiooh</bar>
    </custom_stanza>
    ...
</message>

关键是我知道我会收到一个“custom_stanza”节,但我不知道标签“foo”和“bar”的名称,我需要检索其中的数据。

我使用了EmbeddedExtensionProvider 子类,它给了我“foo”和“bar”的名称,但我无法检索“wololo”或“haiooh”。我怎样才能做到这一点?

干杯,

【问题讨论】:

【参考方案1】:

如果您使用 PacketExtension 发送自定义节,如该线程所述:https://***.com/a/6390037/474002

然后,您可以使用 smack api Packet.getExtensions 作为文档:http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/packet/Packet.html#getExtensions()

希望对你有所帮助~

【讨论】:

以上是关于使用 Smack 接收自定义 XMPP 节的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义字段放入 XMPP vCard Android/SMACK

如何使用 SMACK 在 Android XMPP 客户端中解析自定义花名册查询响应

如何在 Smack 4.1 中的 XMPP 消息标签中添加自定义属性(昵称)

XMPP:Ejabberd 未将具有命名空间前缀的自定义 IQ 转发给用户

如何处理 XMPP XEP-0363:客户端使用 SMACK 库的 HTTP 文件上传功能?

在 Android 上使用 aSmack 发送和接收自定义 XMPP IQ