有非常简单的代码:
<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仅检查 一个 以太网接口。
为什么?