【问题标题】:Browser to browser communication without a server?没有服务器的浏览器到浏览器通信?
【发布时间】:2010-07-19 18:05:23
【问题描述】:

是否有任何可能的方式让浏览器在不使用服务器的情况下通过 lan/wan 相互通信(直接点对点)?

【问题讨论】:

  • 对于所有询问原因的人,我很想看看是否有一种解决方案,可以在无需用户下载任何内容的情况下通过 lan 进行简单/快速的文件传输。

标签: browser p2p


【解决方案1】:

看来希望即将来临:http://www.w3.org/TR/webrtc/

【讨论】:

  • 例如:github.com/cowbell/sharedrop 这个使用HTML5和WebRTC通过局域网传输
  • WebRtc 使用信令服务器,仅在连接初始化时需要,但它使用
【解决方案2】:

是的,您可以尝试使用 AJAX 调用 http://httprelay.io。就这么简单:

* Send data: POST https://demo.httprelay.io/link/your_secret_channel_id
* Receive data GET https://demo.httprelay.io/link/your_secret_channel_id

【讨论】:

  • 这是使用 httprelay.io 站点作为服务器。问题是关于没有服务器的点对点连接。
  • 甚至 WevRTC 在很多情况下都在使用服务器。 httprelay.io 是一个简单得多的解决方案。
【解决方案3】:

IIRC,Opera 为他们的浏览器发布了某种附加功能,其中嵌入了一个网络服务器来实现该功能:

http://unite.opera.com/

不确定它是否真的去了任何地方,但我认为它的时间会到来。

【讨论】:

  • +1 有趣。但它没有直接连接,它使用 Opera 服务器来绕过 NAT 限制(无论如何,这是唯一聪明的方法)jorgemarsal.com/blog/2009/06/16/…
  • 啊,我明白了。我以为它使用 zeroconf/Bonjour 来解析本地客户端。哦,好吧,也许在未来的某一天,它会用 node.client.js + CouchDB 或类似的东西来完成。
【解决方案4】:

在纯 HTML/Javascript 中?应该不会吧。

据我所知,在原生 JavaScript 中没有监听连接的好方法。在 HTTP 中,客户端打开一个端口,发送一个请求,然后接收一个响应。您可以使用 XHTTP 或类似的类来发出请求,但是在普通网页中没有好的方法可以在另一端创建一个服务器来监听请求。

鉴于此,我知道 Flash 提供了一个套接字库,可让您侦听连接。 (我想 Silverlight 也可以这样做,尽管我没有研究过。)如果您要使用这些技术中的任何一种创建对象,您可以侦听来自任何客户端的连接请求(假设您不在防火墙后面)或其他一些连接过滤设备),保持一个开放的套接字并通过网络发送你想要的任何东西。

总结:

  1. 在 JavaScript/HTML/CSS 中可能无法做到这一点。

  2. 但是,您可以在 Flash 或 Silverlight 中完成。

【讨论】:

    【解决方案5】:

    如果浏览器位于防火墙后面,您可以考虑使用 NAT 穿越。 WebRTC 使用 STUN 和 TURN 等协议来执行此操作。 这个网站有一些很好的例子/教程HTML5 Rocks

    【讨论】:

      【解决方案6】:

      简短回答:不。不可能。

      长答案:您可以编写一个签名的 Java 小程序,在每个浏览器中实现一个 Web 服务器。然后浏览器“a”可以与浏览器“b”的小程序对话(不要关闭该选项卡!)。然后,您将以这种方式对其他浏览器状态进行有限访问。

      同样,您可以编写一个插件/插件来完成大部分相同的事情。

      真正的问题是您为什么要这样做?你想达到什么目的?回答这个问题,我们或许能想出一个解决方案。

      【讨论】:

        【解决方案7】:

        是的,他们可以,但他们需要被设计为建立连接(或者需要有一个模块来做到这一点)。

        即使我想知道他们为什么需要......

        【讨论】:

          【解决方案8】:

          Flash - Stratus。提供 P2P 连接的最新闪存中的新内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-06
            • 1970-01-01
            • 1970-01-01
            • 2017-02-05
            • 1970-01-01
            • 2015-10-24
            • 2017-03-07
            • 1970-01-01
            相关资源
            最近更新 更多