我如何使用 sleekXMPP 发送一些聊天客户端未接收到的数据?

How can I send some data with sleekXMPP that is NOT picked up by a chat client?

我想将 XMPP 用作我的应用程序的 "dumb data transport",因为它有用户、联系人列表和绕过 NAT 的方法。

SleekXMPP 看起来很棒 - 它使连接、联系和发送聊天消息变得非常容易。

但是我应该如何发送不是聊天消息的数据?即使我更改消息 "type" 我仍然会在我的常规聊天客户端中看到这些消息。

我序列化了我自己的所有数据,所以我不需要多种类型,这只是一种通过 XMPP 发送数据的简单方法,而不会向某人的聊天记录发送垃圾邮件!

请参阅here了解如何制作您自己的 XMPP 扩展。

您必须选择使用 <iq><message> 节发送数据。

<iq>s 从一个客户端到另一个客户端。它们可以包含您自己的 XML 数据,但 <iq> 元素必须只有一个子元素。但是你必须有在线订阅才能发送这些(你必须在他们的“联系人列表”中),否则你无法知道哪些客户当前在线。

<message>s 可以传送到收件人当前正在使用的多个客户端。他们遵循您使用的消息类型的传递规则,您应该阅读 RFC 6121 § 5.2.2 了解详情。