是否有计划在Web应用程序中连接两个客户端(P2P)的标准?

时间:2011-02-22 20:29:35

标签: javascript html5 p2p websocket

这个问题已经回答: Do websockets allow for p2p (browser to browser) communication?

答案是否定的。

我的问题是:有什么计划吗? W3C的任何投机性草案或任何人,计划这种能力? (我用谷歌搜索,什么也没找到,但我不确定我是否在寻找错误的东西。)

WebSockets API,例如,您可以非常有效地将文件从一个用户传输到另一个用户(例如http://jetbytes.com/和其他一些我见过的用户)。我相信这些工作是通过服务器传递文件 - 它在服务器上很轻,因为它不必在发送到接收客户端之后存储每个块。但它确实使用服务器的带宽两次(向下和向上)进行每次文件传输。

如果服务器只能将每个客户端的IP地址(和端口?)传递给另一个客户端,那么它将更有效(对于服务器和两个客户端),并且可以在它们之间进行整个数据传输。

为了安全起见,浏览器可以提示每个用户授予权限(“此网站,example.com,想要将您连接到IP地址1.2.3.4以接收23MB的文件传输。允许/拒绝?”。) / p>

如果没有计划发布此规范,为什么不呢?

2 个答案:

答案 0 :(得分:3)

在网络应用中有一个建议的P2P数据交换标准:WebRTC Data Channel API

示例JavaScript实现包括PeerJSBoneValueWebRTC.io

答案 1 :(得分:1)

已经实现了一些RFC来解决部分问题(即NAT遍历),但整个问题非常复杂,我怀疑它们将成为一个完整的官方标准化。

您的建议实际上是P2P框架的TURN和STUN实现。它看起来很简单,但当你了解细节时,这是一个复杂的技术问题(我甚至没有提到安全性)。这不仅仅是传递IP地址的问题。

如果您需要更多详细信息,请阅读在线提供的实用JXTA II手册中的NAT遍历章节,以便在Scribd上阅读。