有没有可能在局域网/广域网中使浏览器彼此通信而不使用服务器(直接点对点)?
看起来前景一片光明:http://www.w3.org/TR/webrtc/
您可以尝试使用http://httprelay.io来处理AJAX调用。操作非常简单:
* 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中完成它。
简短回答:不行,不可能。
详细回答:你可以编写一个带有签名的Java小程序,在每个浏览器中实现一个Web服务器。然后浏览器“a”可以与浏览器“b”的小程序通信(不要关闭那个选项卡!)。通过这种方式,您将对其他浏览器状态进行有限访问。
同样地,您可以编写一个插件/附加组件来完成大部分相同的事情。
真正的问题是,为什么您想要这样做?您想要实现什么目标?回答这个问题,我们可能能够提出一个解决方案。
是的,它们可以,但需要设计以建立连接(或需要具有执行此操作的模块)。
即使我在想为什么他们需要这样做..
Flash - Stratus。最新的Flash中提供了P2P连接的新功能。