onicecandidate事件在获得答案之前触发

cJ_*_*cJ_ 3 mozilla google-chrome webrtc

我在chrome浏览器v30中运行自己的webrtc演示代码时遇到麻烦。但是代码完全可以在Firefox上正常工作。在其他要约接受要约之前,将触发onicecandidate事件。在另一端,仅在接受要约后才创建对等连接。因此,当onicecandidate被触发时,在接收方以对等连接结尾的null错误。据我了解WebRTC,我的代码流程是
步骤1:呼叫者按呼叫按钮
步骤2:将调用getUsermedia
步骤3:将创建对等连接
步骤4:将报价发送给呼叫者
步骤5:将报价向呼叫者显示的
步骤6:仅在呼叫者接受呼叫后才创建对等连接
步骤7:对等连接将创建答案
步骤8:将答案发送给呼叫者
步骤9:呼叫者会将icecandidates发送给被呼叫者
第10步:被叫方会将icecandidates发送给呼叫者

上述流程的问题在于,仅在用户接受报价后,才在被叫方建立对等连接。但是在要约创建之后且要约被接受之前的主叫方,将候选冰块发送给主叫方。呼叫方这将导致null错误。

我在debugbin中粘贴了调试日志:-pastebinDOTcom / gMgaxbBp

请为我提供此问题的解决方案。

cJ_*_*cJ_ 5

我弄清楚了自己。问题实际上是在Chrome中,只要设置了对等连接本地描述,它就会开始集冰。我们只有在要约/答案完成后才需要转发这些候选人。利用它,我们需要以某种方式在本地存储。这段代码在firefox上完美运行的原因是在firefox中,icecandidates将被收集并放置在商品本身中。因此,candicandate可以根据要约/答案本身进行交换。