1

我正在开发一个项目,该项目应该允许用户相互连接(1 对 1)并通过网站聊天。如果我使用http://peerjs.com/实现或 WebRTC 对等连接的其他自定义解决方案,我是否需要服务器来代理连接?如果是这样,它的目的是什么?我认为 WebRTC 对等连接的全部意义在于允许直接的用户到用户连接。

4

2 回答 2

1

对等点需要某种方式来找到彼此并建立媒体连接。服务器是执行此操作的便捷方式。您可以为信令设置直接连接以交换 SDP 消息,但这是否有效取决于您是否知道端点和防火墙的地址配置正确。例如,手机和笔记本电脑的 IP 地址会经常变化,这使得直接定位它们变得困难。交换信息以启动对等连接的过程称为信令。

对等连接中的媒体通常在对等之间发送,但您也可以执行诸如通过 TURN 服务器发送媒体之类的操作。

与通过对等连接发送的媒体相比,WebRTC 进程的信令部分非常轻量级。由于使用服务器进行信令的简单性,服务器经常用于信令。

于 2015-08-21T19:02:24.340 回答
1

我认为 WebRTC 对等连接的全部意义在于允许直接的用户到用户连接。

直接用户对用户连接是指P2P连接是两个用户直接交换数据,中间没有任何中继服务器。但要让他们成为那样,他们首先需要相互联系。为此,他们需要彼此的 IP 地址和其他相关信息。

互联网上的两个设备无法知道彼此的地址,除非它们以某种方式在它们之间交换这些信息。这就是使用像 SIP、XMPP 这样的信令服务器的原因。对等方登录这些服务器以交换这些 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 连接也不总是可能的。有一些NAT使得无法创建 P2P 连接。但这是另一个话题。

希望这能消除你的困惑。

于 2015-08-23T04:06:01.810 回答