我怎样才能使浏览器浏览器(对等)连接?

我怎样才能在客户端使用HTML5CSSJavaScript编写一个网站, 一旦页面被加载 ,将允许客户端浏览器之间的直接的TCP / IP连接

我需要这样做,以减less延迟,因为网站将要求从其中一个用户的input尽快传输到另一个用户,所以从客户端A到服务器,然后再到客户端B的数据是不是一个好选项。

我读了以前的这个主题的post,但没有可用的解决scheme/例子,我可以find。 从我读到的客户端之间的直接连接可以使用像Silverlight,Java或Flash插件。

有什么解决scheme,不需要插件? 我只想使用JavaScript。

在这里,Stackoverflow是关于浏览器中的P2P连接的几个主题:

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

正如大部分主题所述,2008年的HTML5工作草案都有一个“对等连接”部分:

自W3C 2009年2月12日工作草案 “对等连接”一节消失了。 但是这个P2P连接并没有消失。 它在WebRTC(实时通信)规范中名称为PeerConnection:

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

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

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

可能Chrome(使用WebKit)将成为第一个支持WebRTC和PeerConnection的主stream浏览器:

自2012年1月18日起, Chrome也支持WebRTC 。 它可以在开发通道(Windows,OSX,Linux)以及Canary构build(Windows和OSX)中使用 ,方法是在chrome://flags下启用它 。 它只支持像video和audio这样的MediaStream ,可以用几个演示testing。 像String / ArrayBuffer / …这样的应用程序数据传输到现在还不被支持。

自2012年3月16日起,WebRTC编辑草案将“对等数据API”分离为发送和接收通用应用程序数据( StringArrayBufferBlob )。 Chromium希望很快实施Data API (2012年4月10日)。

4月3日,Mozilla也发布了第一个关于Firefox的WebRTC的实例。

DataChannel计划在Chrome版本25后面加上一个标志,同时可以在Firefox Nightly / Aurora(2012年12月12日)进行testing:

我将不得不让你失望 – 目前只有JavaScript才能实现。 Websockets(和Socket.IO)允许客户端和服务器之间的类似于套接字的连接,但不允许客户端之间的连接。 你的select是一个插件 – 无论是Flash,Silverlight,Java或定制。

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

我想把你的注意力转移到现在的大多数用户都在NAT或防火墙之后,这意味着你不能轻易build立到用户计算机的连接。 所以你的想法(如果可能的话)只会在某些情况下起作用,并会给解决scheme带来额外的复杂性。 因此,具有可能的持久连接(使用websockets或socket.io)的客户端 – 服务器系统是更好的select。