我问到浏览器之间通信时,是指在没有服务器转发消息的情况下。我想为游戏实现这样的功能。如果WebSockets中的点对点通信不可行,是否有类似的替代方案?谢谢任何帮助。
我问到浏览器之间通信时,是指在没有服务器转发消息的情况下。我想为游戏实现这样的功能。如果WebSockets中的点对点通信不可行,是否有类似的替代方案?谢谢任何帮助。
浏览器只能发起WebSocket连接,而不能接收WebSocket连接。W3C浏览器API规范仅定义了如何启动出站连接。
您可以创建一个既可以发起也可以接受WebSocket连接的应用程序,但浏览器不支持此功能。
您可以查看Pusher App,使用该服务可以构建具有多个客户端的WebSocket应用程序。该服务免费提供最多20个同时WebSocket客户端(您可以付费以获得更高的扩展性)。
更新:
WebRTC协议和API正在快速发展,并允许在两个对等方之间建立数据通道(您可能仍需要一个STUN/TURN服务器进行初始NAT穿透和设置)。
media.peerconnection.enabled
设置为true(about:config),Firefox 19-21也支持WebRTC。我正在阅读关于WebSocket和P2P(对等)技术的文章,发现PeerJS。
尽管我还没有做出任何东西,但从示例中看来,它看起来很有前途。
现在是可以做到的,目前只有Chrome,FF和Opera(桌面版)支持它。
现在有一些库开始在网络上出现,比如PeerJS和js-platform-p2p,这些库基本上简化了事情。