【发布时间】:2010-09-14 23:38:59
【问题描述】:
我正在寻找一种方法,可以将一个浏览器连接到另一个浏览器,而不必因中间有服务器而导致网络延迟。
HTML5 WebSockets 似乎不起作用,因为我找不到在 Javascript 中侦听连接的方法,只能建立连接。
有人知道怎么做吗? (直接连接2个浏览器?比如直接通过2台电脑的IP)
【问题讨论】:
我正在寻找一种方法,可以将一个浏览器连接到另一个浏览器,而不必因中间有服务器而导致网络延迟。
HTML5 WebSockets 似乎不起作用,因为我找不到在 Javascript 中侦听连接的方法,只能建立连接。
有人知道怎么做吗? (直接连接2个浏览器?比如直接通过2台电脑的IP)
【问题讨论】:
有趣的是,事情是如何随着 JavaScript 快速变化的,而且公认的答案(从 2010 年开始)说这是不可能的 :-)
在 2013 年是的,有一种方法可以让浏览器直接通信:WebRTC。它是 HTML5 的一部分,并且正在积极开发中。例如,它已在 Chrome 稳定版本和 Firefox 的夜间版本中可用。
WebRTC 浏览器提供 JavaScript 接口:
请参阅此blog post 以了解介绍(有点过时,已经实现了更多),此video 以获得很好的概述,W3C WebRTC JavaScript API 以及相关的 RFC 和 Internet 草案网络协议。
【讨论】:
不,这对于 JavaScript 是不可行的。
您需要一个用可以访问操作系统网络 API 的语言编写的客户端。
【讨论】:
这不是一个完美的解决方案,但它是一种让您直接从客户端广播到频道上所有其他客户端的方式。注意:它使用 Pusher,这是一项免费增值服务,我发现它非常棒且可靠。如果他们想出了办法,那么一定有办法。他们的源代码也可以在 GitHub 上找到。
http://pusher.com/docs/client_events
来自他们的网站:
在使用 Pusher 时,并非所有流量都需要通过您的传统网络服务器。一些不需要持久性的琐碎操作可以直接通过套接字到达连接到通道的所有其他客户端。
希望对您有所帮助。
【讨论】: