如何建立浏览器到浏览器(点对点)连接?

Răz*_*nda 73 javascript html5 p2p tcp tcp-ip

如何在客户端使用HTML5,CSSJavaScript编写网站,以便在加载页面后允许客户端浏览器之间直接进行tcp/ip连接.

我需要这样做以减少延迟,因为该站点将要求其中一个用户的输入尽快传输给其他用户,因此从客户端A发送数据到服务器然后再发送到客户端B不是一个好的选项.

我读过以前关于这个主题的帖子,但是我找不到可用的解决方案/示例.从我读到的内容可以使用Silverlight,Java或Flash等插件进行客户端之间的直接连接.

有没有不需要插件的解决方案?我想只使用JavaScript.

Den*_*nis 119

在Stackoverflow上有几个关于浏览器中P2P连接的主题:

  1. HTML5是否允许Web应用程序进行点对点HTTP连接?
  2. 有什么技术可以在浏览器中进行P2P操作?
  3. HTML5是否支持点对点(而不仅仅是WebSockets)
  4. HTML5 Websockets可以直接连接2个客户端(浏览器)而无需使用服务器(P2P)
  5. 是否可以在Web浏览器中创建对等连接?
  6. websockets是否允许p2p(浏览器到浏览器)通信?
  7. HTML 5点对点视频的可能性?
  8. WebRTC是否已在任何浏览器中实现?

正如大多数主题中所提到的,2008年的HTML5工作草案都有一个"点对点连接"部分:

2009年2月12日W3C工作草案以来,"对等连接"部分消失了.但这种P2P连接并没有消失.它在WebRTC(实时通信)规范中以PeerConnection的名称返回:

自2011年10月31日起,W3C编辑的草案是正式的工作草案:

爱立信实验室(2011年5月)在修改后的WebKit中存在PeerConnection(基于UDP)的唯一实现,该工作运行良好.一些补丁现在在WebKit中(2011年10月 - 请参阅下面的更新!):

此外,WebRTC计划是Google,Mozilla和Opera的一个项目.因此,他们继续关于PeerConnection的规范:

Chrome(使用WebKit)可能是支持WebRTC和PeerConnection的第一个主要浏览器:

自2012年1月18日起,Chrome也支持WebRTC.它可以在Dev通道(Windows,OSX,Linux)和Canary构建(Windows和OSX)中使用,方法是在它下面启用它chrome://flags.它只支持MediaStream视频和音频,可以使用几个演示进行测试.到目前为止,不支持传输String/ ArrayBuffer/ ...之类的应用程序数据.

2012年3月16日,的WebRTC编者草案分开一个"对等网络数据API"发送和接收通用应用程序数据(String,ArrayBufferBlob).Chromium希望尽快实施Data API(2012年4月10日).

4月3日,Mozilla也发布了第一个关于Firefox的WebRTC的工作示例.

DataChannel计划用于Chrome版本25,标志后面,同时可以在Firefox Nightly/Aurora中测试(2012年12月12日):

2018年:DataChannel仍处于试验阶段,但在当前版本的Chrome和Firefox中可用:

  • 这是2014年,您能否根据最近的进展更新您的优秀帖子? (11认同)
  • 这是2016年在澳大利亚.我们可以为浏览器点对点提供最新的链接吗? (2认同)
  • 是啊,那更新怎么样? (2认同)

Emi*_*nov 7

我不得不让你失望 - 目前只有JavaScript这是不可能的.Websockets(和Socket.IO)允许客户端和服务器之间的类似套接字的连接,但不允许客户端之间的连接.您的选择是一个插件 - 无论是Flash,Silverlight,Java还是定制的.

你可以做的是使用socket.io并通过编写一个简单的代理服务器来模拟它.

  • 如果您不能使用浏览器"LISTEN"/充当服务器,则解决该问题.您将能够以全双工方式与任何服务器通信,但您的消费者无法成为服务器.此外,如果可以,您将遇到一百万个防火墙问题.Emil的解决方案可以更好地工作,虽然速度较慢. (5认同)

归档时间:

查看次数:

48034 次

最近记录:

7 年,4 月 前