java - 如何使用 smack 库将自定义 IQ 节发送给另一个用户?

标签 java xmpp openfire smack xmppframework

这是获取花名册的示例 IQ 节

<iq from="alice@wonderland.lit/pda" id="rr82a1z7"
type="get">
    <query xmlns="jabber:iq:roster"/>
</iq>

从这里standard specification ,Iq 节可以通过设置“TO”属性定向到特定用户,这样 xmpp 服务器会将 IQ 节转发到“TO”属性中指定的 JID(完整 Jabber ID),check specification

但是当我查询 IQ 节以满足我的需要时

<iq from="alice@wonderland.lit/pda" id="rr82a1z7"
to="alice@wonderland.lit/Smack"
type="get">
    <UserDetails xmlns="http://www.test.org/User/">
        <userName>username</username>
    </UserDetails>
</iq>

Stanza 被转发到“alice@wonderland.lit”,但我从 Openfire 服务器收到错误条件为“feature-not-implemented”的 IQ Stanzs。

有什么办法可以消除这个错误并得到结果吗?

我关注了这个tutorial产生客户。

我可以看到正在接收自定义节的 wireshark 跟踪,但看不到正在调用“myIQListener”?

问题:

  • 还有我遗漏的任何其他中间步骤吗?
  • 还有其他更好的例子吗?

最佳答案

我就是这样解决自己的问题的。

  • 使用完整的 jabber ID(包括资源)

  • 由于 smack 库不理解 Custom IQ Stanzas 实现 拥有 IQProvider ,过滤并将其添加到您的连接中 解释 here

关于java - 如何使用 smack 库将自定义 IQ 节发送给另一个用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38789227/

相关文章:

java - 我正在尝试打印出二维数组的右下三角形

java - 如何从 JTable 中获取第一个小时

java - artifactoryPublish 配置中发布部分的魔力

php - 如何使用php绕过XMPP Openfire服务器中的登录过程?

java - XMPP Smack 无法接收消息

java - Jersey 可见和 c :import tag lib

android - 无法连接到本地 openfire XMPP 服务器

xmpp - Openfire http绑定(bind)

java - OpenFire插件: Sending custom message packet