HTML5 Websockets 可以直接连接 2 个客户端(浏览器)而不使用服务器吗? (P2P)[重复]

Posted

技术标签:

【中文标题】HTML5 Websockets 可以直接连接 2 个客户端(浏览器)而不使用服务器吗? (P2P)[重复]【英文标题】:Can HTML5 Websockets connect 2 clients (browsers) directly without using a server? (P2P) [duplicate] 【发布时间】:2011-05-15 17:01:38 【问题描述】:

使用 html5 Websockets,我可以直接在 2 个客户端(浏览器)之间打开一个套接字(假设我知道它们的 IP 地址并且没有 NAT 穿越问题)。我想将一些数据直接从一个浏览器发送到另一个浏览器,本质上是创建一个 P2P 网络。到目前为止我在网络上阅读的所有内容,websockets 都用于客户端和服务器之间的通信,但没有关于客户端到客户端的内容。

【问题讨论】:

【参考方案1】:

已在此处回答以获取更多详细信息:Do websockets allow for p2p (browser to browser) communication?

更新

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

【讨论】:

我认为你需要看看这个:html5rocks.com/en/tutorials/webrtc/basics/#toc-rtcdatachannellabs.ericsson.com/developer-community/blog/…。 @MehdiKaramosly,Ericsson 的博文相当陈旧,正在谈论成为 WebRTC 的技术。 这是peerConnection ? peerConnection 是 WebRTC 的一部分(它是一大堆技术的名称)。 截至 2017 年,WebRTC 是大多数现代浏览器的标准部分。见***.com/a/45765379/3672465【参考方案2】:

从过去到未来:选择您的实施。

大多数现代浏览器都支持使用 Websockets 的点对点代理。 点对点仅适用于某些浏览器插件,例如Opera Unite 和FireFox Pow。 主要浏览器正在实施WebRTC,这将允许点对点。

【讨论】:

【参考方案3】:

如果您不想自己实现服务器,您可以使用 https://httprelay.io 。无需额外的库,所有通信都基于简单的 AJAX 调用。

【讨论】:

以上是关于HTML5 Websockets 可以直接连接 2 个客户端(浏览器)而不使用服务器吗? (P2P)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

noVNC连接多台远程主机

CentOS安装noVNC,以Web方式交付VNC远程连接

CentOS安装noVNC,以Web方式交付VNC远程连接

为啥即使使用 HTML5 也没有通过浏览器的 UDP 连接?

html5 WebSocket

如何在 sharedworkers 中使用 html5 websockets