WebRTC,冰候选人连接

时间:2016-03-26 21:06:39

标签: webrtc

我正在尝试学习如何在应用程序中使用webRTC,因此我在以下链接中编写了一个代码示例:http://wklej.org/hash/fd599a32e8e/

一开始我需要说我不关心浏览器的兼容性,我只需要支持Chromium web引擎而不需要任何外部适配器/其他库。

Web应用程序应该允许我在同一主机上运行的两个浏览器选项卡之间建立连接 - 通过手动交换适当的数据(SDPICE候选人)。

要遵循的步骤:

  1. 点击"创建优惠按钮",复制本地SDP;
  2. 转到其他标签页并将之前复制的SDP插入"远程SDP"区域,然后按"创建答案";
  3. 复制生成的本地SDP,转到第一个选项卡,插入"远程SDP"区域并单击"设置远程sdp"按钮(不创建答案按钮);
  4. 交换冰候选人 - 从一个标签中复制它们,插入第二个标签并按" addCandidates"按钮。用另一种方式做同样的事。
  5. 主要问题是这个功能:

    peer.iceconnectionstatechange = function(event) {
        console.log("ice connection state: " + peer.iceConnectionState)
    }
    

    不会被触发。我尝试使用STUN/TURN服务器但没有成功。远程视频无法运行。如果有人可以指出我犯了错误的地方?

1 个答案:

答案 0 :(得分:2)

尝试我的(剪切' n'粘贴):https://jsfiddle.net/7vv2vxtt/

或自动(localStorage):https://jsfiddle.net/2v1Lnpmx/

This code intentionally left blank.
随着时间的推移,ICE候选人会被添加到本地优惠/答案中,因此在生成所有候选人的SDP之前,它只是等待候选人结束。

应该适用于所有浏览器。