【问题标题】:Is there a way to connect 2 browsers without a server? Maybe with Websockets?有没有办法在没有服务器的情况下连接 2 个浏览器?也许与Websockets?
【发布时间】:2010-09-14 23:38:59
【问题描述】:

我正在寻找一种方法,可以将一个浏览器连接到另一个浏览器,而不必因中间有服务器而导致网络延迟。

HTML5 WebSockets 似乎不起作用,因为我找不到在 Javascript 中侦听连接的方法,只能建立连接。

有人知道怎么做吗? (直接连接2个浏览器?比如直接通过2台电脑的IP)

【问题讨论】:

    标签: html tcp websocket


    【解决方案1】:

    有趣的是,事情是如何随着 JavaScript 快速变化的,而且公认的答案(从 2010 年开始)说这是不可能的 :-)

    在 2013 年是的,有一种方法可以让浏览器直接通信:WebRTC。它是 HTML5 的一部分,并且正在积极开发中。例如,它已在 Chrome 稳定版本和 Firefox 的夜间版本中可用。

    WebRTC 浏览器提供 JavaScript 接口:

    • MediaStreams:访问主机硬件:摄像头、麦克风、扬声器。
    • 用于 NAT 遍历的 ICE。
    • PeerConnection:用于音频/视频流的直接浏览器到浏览器通信。
    • DataChannel:用于自定义数据的直接浏览器到浏览器通信。

    请参阅此blog post 以了解介绍(有点过时,已经实现了更多),此video 以获得很好的概述,W3C WebRTC JavaScript API 以及相关的 RFC 和 Internet 草案网络协议。

    【讨论】:

      【解决方案2】:

      不,这对于 JavaScript 是不可行的。

      您需要一个用可以访问操作系统网络 API 的语言编写的客户端。

      【讨论】:

      • Flash 的 Cirrus 看起来可能是一种方法,但似乎还没有结束测试。最终处理了中间的服务器,这已经足够快了。
      【解决方案3】:

      这不是一个完美的解决方案,但它是一种让您直接从客户端广播到频道上所有其他客户端的方式。注意:它使用 Pusher,这是一项免费增值服务,我发现它非常棒且可靠。如果他们想出了办法,那么一定有办法。他们的源代码也可以在 GitHub 上找到。

      http://pusher.com/docs/client_events

      来自他们的网站:

      在使用 Pusher 时,并非所有流量都需要通过您的传统网络服务器。一些不需要持久性的琐碎操作可以直接通过套接字到达连接到通道的所有其他客户端。

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2021-12-04
        • 2012-06-19
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多