我可以将 WebRTC 中的“报价”重新用于多重连接吗?

Aer*_*rik 10 javascript webrtc

我开始学习 WebRTC 并在此处使用复制/粘贴有一个工作原型:https : //github.com/aerik/webrtc(该原型旨在在两个浏览器窗口中运行,与许多其他同时运行的示例不同)在一个窗口)

我知道 WebRTC 是点对点的,我需要为每组对等点建立连接。但是,我开始考虑发信号(还没有代码),我想知道“要约”。在我的原型中,我看到多次单击“创建报价”会产生相同的字符串。所以,如果有客户端 A,并连接到客户端 B 和 C,看起来我会向他们发送相同的“报价”。如果那是正确的,它使发送信号的第一步变得容易 - 客户端 A 将始终具有相同的报价,而我只需要收集来自已连接对等方的响应。

这是正确的理解吗?

Jav*_*nde 10

事实并非如此,对等连接将为不同的报价(o=在 SDP 中)生成不同的原始值。

相同的对等连接提议将包含相同<sess-id>但不同的<sess-version>.

不同的对等连接会产生不同的 <sess-id>

您可以在 Chrome 中使用以下代码段进行检查:

var a = new webkitRTCPeerConnection({});
a.createOffer().then(offer => $('#11').text(offer.sdp));
a.createOffer().then(offer => $('#12').text(offer.sdp));
var b = new webkitRTCPeerConnection({});
b.createOffer().then(offer => $('#21').text(offer.sdp));
b.createOffer().then(offer => $('#22').text(offer.sdp));
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
First PC, first offer: <span id="11"></span><br/>
First PC, second offer: <span id="12"></span><br/>
Second PC, first offer: <span id="21"></span><br/>
Second PC, second offer: <span id="22"></span><br/>
Run Code Online (Sandbox Code Playgroud)

您可以在https://datatracker.ietf.org/doc/html/rfc4566#page-11 中找到有关 SDP 的更多信息