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

Posted

技术标签:

【中文标题】如何使用聊天客户端未接收到的 slimXMPP 发送一些数据?【英文标题】:How can I send some data with sleekXMPP that is NOT picked up by a chat client? 【发布时间】:2015-09-03 13:40:34 【问题描述】:

我想将 XMPP 用作我的应用的“哑数据传输”,因为它有用户、联系人列表和绕过 NAT 的方式。

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

的另一个重要区别: 是请求和响应(必须始终有响应。对于单向数据传输,消息更好。如果你不' t 包含 元素,普通的 IM 客户端不会显示它。

以上是关于如何使用聊天客户端未接收到的 slimXMPP 发送一些数据?的主要内容,如果未能解决你的问题,请参考以下文章

java是如何实现聊天功能的?

Socket入门笔记 用TcpClient实现一个简易聊天室

如何在 slimxmpp python 中为 gcm ccs 请求创建 xmpp 节?

HTTP 请求未使用客户端身份验证方案“Ntlm”未经授权从服务器接收到的身份验证标头为“NTLM”

从 UDP 接收到的消息播放音频,点击声音(Naudio API)

python slimxmpp & gchat 发送“隐形”存在