1

我在 AWS EC2 实例上运行 Openfire 服务器,并且能够从我的移动设备连接到服务器并来回发送消息。当然,由于 XMPP 是基于客户端-服务器的协议,因此我会在 AWS 服务器上运行此流量产生成本。然而,对于大多数用例来说,这个成本根本不是很高,因为普通的 XMPP 节似乎很少超过 ca。1 KB,所以从这里开始一切正常。

但是,我现在想包括将图像从一个客户端发送到另一个客户端的功能。一种方法是使用 HTTP 服务器,用户 A 将图片上传到该服务器,然后通过 XMPP 将图像的 URL 发送给用户 B,以便用户现在可以通过 HTTP 获取图像。还有其他几种通过 XMPP 发送图像的方法。但是,我有兴趣通过 Jingle 做到这一点。

据我了解,Jingle 是 XMPP 的带外点对点扩展。我的简单问题是,由于 Jingle 是点对点通信,即不使用服务器,对于会话的多媒体方面,我什至会在 AWS 上使用 Jingle 将多媒体从一个客户端传输到另一个客户端产生任何数据成本吗?或者换一种说法,如果 Jingle 是点对点的,是否有任何数据通过我的 AWS 服务器使用 Jingle(会话启动、确认、会话终止节除外)?如果不是,那么这些数据采用什么样的路由,如果是点对点的,如何向任何人收取此流量成本的费用?

4

1 回答 1

2

Jingle 是一种协商机制,它可以协商几种不同的传输方式来进行文件传输。最常见的传输是在http://xmpp.org/extensions/xep-0260.html中定义的点对点字节流- 这里您通过服务器看到的唯一流量是叮当声协商,这是一种类似的量到其他 XMPP 流量)。http://xmpp.org/extensions/xep-0261.html中还定义了一个带内字节流传输一些客户端将使用 - 通常用于较小的传输,因为它效率低下,但具有在具有 NAT 和防火墙的敌对网络中工作的优势。如果您控制客户端,则根本不支持 IBB 将是确保流量不通过服务器传输的最佳选择。如果您不这样做,我建议您将服务器配置为阻止 IBB 流量。

我还注意到,运行服务器端代理将大大增加 260 中带外机制在面对敌对网络时工作的几率,但会以服务器带宽为代价。

还有未广泛部署的http://xmpp.org/extensions/xep-0343.html带外传输。

于 2014-12-05T04:38:07.343 回答