那一旦我们向其他peer发出冰候选信号后,要删除监听器呢?

问题描述 投票:0回答:1

我发现以下几行语句(代码)在 Pro JavaScript Development谷歌林.

// Google chrome often finds multiple candidates, so let's ensure we only
// ever get the first it supplies by removing the event handler once a 
// candidate has been found

that.peerConnection.onicecandidate = null;
...
that.peerConnection.addIceCandidate(new IceCandidate(JSON.parse(candidate)))

我们找到候选者后,避免使用icecandidate是好的做法吗?

javascript webrtc
1个回答
2
投票

不对。不要这样做!

有不同类型的 冰候选人: host, srflx, prflx, relay.

因此,它不能保证在对等体之间的第一次协商时,他们将被连接。他们会尝试用不同的路由(不知道具体应该说什么)STUN、TURN服务器进行连接。第一次尝试使用STUN服务器进行协商时,我们假设两个对等体都连接成功。但是如果他们没有连接呢?他们会尝试用TURN服务器连接。

因此,如果我们去掉STUN服务器上的 onicecandidate 监听器,在我们得到冰候选者后将其赋值为null,那么我们就不能保证对等体之间的连接。

© www.soinside.com 2019 - 2024. All rights reserved.