建立WebRTC对等连接

时间:2017-03-31 07:40:01

标签: webrtc

我已经开始研究WebRTC了,我正在使用它来构建一个使用数据通道的简单对等聊天应用程序。我有以下问题:

  1. 我是否需要为每个想要与之对话的对等方建立RTCPeerConnection?因此,如果有三个对等体,它们每个都需要2个RTCPeerConnections(除非我使用其中一个对等体作为一种ad-hoc服务器)。

  2. 如果对等体A在向对等体B创建提议时发出候选者和sdp。对等体B可以使用该信息连接到对等体A并通过RTCPeerConnection发送其答案(带有候选者及其sdp),即使用RTCPeerConnection(在它完全建立之前)作为信令通道?我认为当优惠由对等方A创建时,它会开始侦听某个端口上的连接。

  3. 我对WebRTC的理解有点受限,所以如果我在上面的问题中误解了WebRTC的一些概念,请指出它们!

2 个答案:

答案 0 :(得分:3)

  1. 是的,作为直接的P2P协议,如果他们想要沟通,每个人都必须直接与其他人联系;除非你创建某种网状网络,其中一个对等体将消息转发给其他对等体。
  2. 不,SDP提供和答案以及ICE候选人都需要通过信令服务器进行交换;在两个对等方实际上已就特定会话配置和ICE路由达成一致之前,无法建立连接,因此您无法通过尚未完成的连接发送SDP应答。
  3. 特别是对于简单的纯文本聊天,通过服务器通常比使用P2P更容易;处理和带宽要求非常小,以至于P2P连接的复杂性可能不值得。无论如何你还需要一个信令服务器。一旦你开始发送大文件或音频/视频流,P2P才会变得非常有趣。

答案 1 :(得分:1)

原则上可以在没有信令服务器的情况下建立WebRTC连接,但是这要求对等方之间进行会话令牌的带外交换。即用户将不得不从应用程序中复制令牌,然后以某种方式将其发送给另一个用户,而另一个用户则将其粘贴。

此外,这些令牌不能重复使用,因此每次对等体想要建立连接时,都必须重复此过程。

因此,虽然理论上可能的webrtc并非以实用术语发布。

is some noise关于指定对传入连接和可重用对等联系人的支持,但是目前尚不清楚。