ICE候选人仅从一个网络接口收集

时间:2018-10-05 11:08:16

标签: webrtc ice

有非常简单的代码:

<script type="text/javascript">
    pc = new window.RTCPeerConnection();

    pc.onicecandidate = function(event) {
        console.log("onicecandidate\n", event);
    }

    pc.onicegatheringstatechange = function(event) {
        console.log("onicegatheringstatechange\n", event);
    }

    dc = pc.createDataChannel("dataChannel");

    errFunc = function(err) {
        console.log("errFunc\n", err);
    }

    successCback = function() {
        console.log("setLocalDescription is a success\n");
    }

    pc.createOffer()
        .then(function(offer) { pc.setLocalDescription(offer)})
        .then(successCback)
        .catch(errFunc);

</script>

运行chrome和 两个 本地以太网接口的ubuntu。 运行上述代码仅会产生 1 调用onicecandidate和 1 呼叫onicegatheringstatechange。 (故意不指定任何STUN / TURN服务器,因此我确实只希望本地主机候选者,而是来自 all 接口)。 ICE仅检查 一个 以太网接口。

为什么?

1 个答案:

答案 0 :(得分:2)

除非您拥有getUserMedia的权限,否则Chrome会将ICE候选者限制为默认路由的界面。解释in this draft