我是webRTC的新手。问题与ICE重启有关。假设有两个使用webRTC连接的对等体,其中一个失去了连接。现在,对等连接将首先进入“断开连接”状态。不久之后,如果仍然没有连接,则进入“失败”状态。
现在,我知道一旦达到这种失败状态,我就必须重新启动ICE。问题是即使一个对等体失去连接,两个对等体都会报告“失败”状态并尝试执行ICE重启,我认为这应该是有问题的。以下是代码片段:
if (peer.localConnection.iceConnectionState == "failed") {
// create an offer
peer.localConnection.createOffer({
iceRestart : true
}).then(function(offer) {
peer.localConnection.setLocalDescription(offer);
// forward the offer to the signaling server
var msg = createMsg("OFFER", myId, peerId, offer);
sendToSignallingServer(msg);
}, function(error) {
//error
});
}
据我所知,在发现现在有两个商品时,其中一个商家应该使用RTCSessionDescription(“rollback”)执行“回滚”。但我很困惑这是否会起作用,因为两个对等体都可能尝试执行回滚。
如何确保只有一个对等体执行回滚?
答案 0 :(得分:1)
避免这种情况的一种方法(因为还没有广泛实现回滚)只是在你的连接端发送了初始报价时才重新启动。