<分区>
我正在从事一个项目,该项目应该允许用户相互联系(一对一)并通过网站聊天。如果我选择 http://peerjs.com/ WebRTC 对等连接的实现或其他自定义解决方案,我是否需要服务器来代理连接?如果是这样,它的目的是什么?我认为 WebRTC 对等连接的全部意义在于允许直接的用户到用户连接。
<分区>
我正在从事一个项目,该项目应该允许用户相互联系(一对一)并通过网站聊天。如果我选择 http://peerjs.com/ WebRTC 对等连接的实现或其他自定义解决方案,我是否需要服务器来代理连接?如果是这样,它的目的是什么?我认为 WebRTC 对等连接的全部意义在于允许直接的用户到用户连接。
最佳答案
I thought the whole point of WebRTC peer connection was to allow for direct user-to-user connections.
直接用户到用户连接是指 P2P 连接,两个用户直接交换数据,中间没有任何中继服务器。但要让他们成为那样,他们首先需要相互联系。为此,他们需要彼此的 IP 地址和其他相关信息。
互联网上的两台设备无法知道彼此的地址,除非它们以某种方式在它们之间交换这些信息。这就是为什么要使用像 SIP、XMPP 这样的 Signaling 服务器。对等点登录到这些服务器以交换这些 IP 信息。当对等点 A 和对等点 B 登录到 SIP 服务器时,然后当对等点 A 想要与对等点 b 通信时,
1) A将其IP信息发送到sip服务器。 Sip 服务器会将此信息转发给 B。
2) 收到信息后,对端B将其IP地址发送给SIP服务器,SIP服务器将其转发给对端A。
3) 在他们都知道对方的 IP 信息后,他们就可以直接相互连接,而无需再次使用 SIP 服务器。
这就是P2P连接。它使用信令服务器仅在其 P2P 连接之后在对等点之间创建连接。
但是即使知道每个对等点的所有 Ip 信息,P2P 连接也不总是可能的。有一些NATs这使得无法创建 P2P 连接。但那是另一个话题。
希望这能消除您的困惑。
关于javascript - PeerJS 或 WebRTC 对等连接是否需要服务器或仅在客户端之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32147056/