Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebSocket是否允许p2p(浏览器到浏览器)通信?_Javascript_Ajax_Websocket_P2p - Fatal编程技术网

Javascript WebSocket是否允许p2p(浏览器到浏览器)通信?

Javascript WebSocket是否允许p2p(浏览器到浏览器)通信?,javascript,ajax,websocket,p2p,Javascript,Ajax,Websocket,P2p,为了澄清,当我询问浏览器对浏览器的通信时,我的意思是在转发消息之间没有服务器。我想在游戏中实现类似的东西。如果websockets中的p2p是不可能的,那么还有类似的替代方案吗?感谢您的帮助 否。浏览器只能启动WebSocket连接,不能接收它们。仅定义如何启动出站连接 您可以创建一个既可以启动又可以接受WebSocket连接的应用程序,但浏览器不会这样做 您可以看看可以使用哪种方法构建具有多个客户端的WebSockets应用程序。该服务免费提供多达20个同步WebSockets客户端(您可以支

为了澄清,当我询问浏览器对浏览器的通信时,我的意思是在转发消息之间没有服务器。我想在游戏中实现类似的东西。如果websockets中的p2p是不可能的,那么还有类似的替代方案吗?感谢您的帮助

否。浏览器只能启动WebSocket连接,不能接收它们。仅定义如何启动出站连接

您可以创建一个既可以启动又可以接受WebSocket连接的应用程序,但浏览器不会这样做

您可以看看可以使用哪种方法构建具有多个客户端的WebSockets应用程序。该服务免费提供多达20个同步WebSockets客户端(您可以支付更高的扩展)

更新


协议和API进展迅速,允许在两个对等方之间建立数据通道(您可能仍然需要一个STUN/TURN服务器进行初始NAT遍历和设置)。

理论上,通过以下方式可以实现:

RTCDataChannel是一个WebRTC API,具有高性能、低延迟、, 任意数据的点对点通信。API是 与WebSocket类似,但通信直接发生在 浏览器,因此RTCDataChannel可以比WebSocket快得多,即使 需要一个中继(TURN)服务器(当“打孔”时)来处理 防火墙和NAT失败)

“理论上”是因为它还不受稳定浏览器的支持,而且如果其中一个浏览器在后台,您仍然需要中继服务器(TURN)。然而,这确实是一个很有前途的特性


更新:Chrome 26和Firefox 22默认支持RTCDataChannel,如果您通过将
media.peerconnection.enabled
设置为true(about:config)来启用WebRTC,则Firefox 19-21支持RTCDataChannel。

我正在阅读关于websocket和peer 2 peer的内容,并找到了它


虽然我还没有做任何事情,但从例子来看,它看起来很有希望。

现在这是可能的,目前只有Chrome、FF和Opera支持它(桌面)


现在web上开始出现一些库,例如and,它大大简化了事情。

简单可靠的跨浏览器支持方式是使用AJAX调用。它还实现了对游戏开发有用的一对多通信。

+1。虽然我不推荐第三方应用。更容易建立自己的。Pusher现在每天免费提供20个同步连接和10万条消息:)我认为你应该更新你的答案:@kanaka这意味着你仍然需要第一次通过服务器,才能建立对等2对等连接?@MehdiKaramosly,理论上是可能的()但这是一个非常不常见的用例,因为几乎每个人都在NAT防火墙后面,您仍然需要某种方式来设置信令(传达连接细节)。是的,但没有浏览器有工作的实现,我相信这是W3C现在起草的规范的一部分,其中谈到了点对点连接。PeerJS是WebRTC的包装器。现在edge也是!