【发布时间】:2010-07-19 18:05:23
【问题描述】:
是否有任何可能的方式让浏览器在不使用服务器的情况下通过 lan/wan 相互通信(直接点对点)?
【问题讨论】:
-
对于所有询问原因的人,我很想看看是否有一种解决方案,可以在无需用户下载任何内容的情况下通过 lan 进行简单/快速的文件传输。
是否有任何可能的方式让浏览器在不使用服务器的情况下通过 lan/wan 相互通信(直接点对点)?
【问题讨论】:
看来希望即将来临:http://www.w3.org/TR/webrtc/
【讨论】:
是的,您可以尝试使用 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
【讨论】:
【讨论】:
在纯 HTML/Javascript 中?应该不会吧。
据我所知,在原生 JavaScript 中没有监听连接的好方法。在 HTTP 中,客户端打开一个端口,发送一个请求,然后接收一个响应。您可以使用 XHTTP 或类似的类来发出请求,但是在普通网页中没有好的方法可以在另一端创建一个服务器来监听请求。
鉴于此,我知道 Flash 提供了一个套接字库,可让您侦听连接。 (我想 Silverlight 也可以这样做,尽管我没有研究过。)如果您要使用这些技术中的任何一种创建对象,您可以侦听来自任何客户端的连接请求(假设您不在防火墙后面)或其他一些连接过滤设备),保持一个开放的套接字并通过网络发送你想要的任何东西。
总结:
在 JavaScript/HTML/CSS 中可能无法做到这一点。
但是,您可以在 Flash 或 Silverlight 中完成。
【讨论】:
如果浏览器位于防火墙后面,您可以考虑使用 NAT 穿越。 WebRTC 使用 STUN 和 TURN 等协议来执行此操作。 这个网站有一些很好的例子/教程HTML5 Rocks
【讨论】:
简短回答:不。不可能。
长答案:您可以编写一个签名的 Java 小程序,在每个浏览器中实现一个 Web 服务器。然后浏览器“a”可以与浏览器“b”的小程序对话(不要关闭该选项卡!)。然后,您将以这种方式对其他浏览器状态进行有限访问。
同样,您可以编写一个插件/插件来完成大部分相同的事情。
真正的问题是您为什么要这样做?你想达到什么目的?回答这个问题,我们或许能想出一个解决方案。
【讨论】:
是的,他们可以,但他们需要被设计为建立连接(或者需要有一个模块来做到这一点)。
即使我想知道他们为什么需要......
【讨论】:
Flash - Stratus。提供 P2P 连接的最新闪存中的新内容。
【讨论】: