我有一个应用程序,它创建了两个RTCPeerConnection实例(在同一个JS上下文中),它们试图相互连接。当我在开发时,我经常重新加载页面,也许每分钟几次。大约有10%的时间,WebRTC将无法进展到'iceConnectionState == "connected"'阶段。即使我没有把STUNTURN服务器传递给我,这个失败也会发生。createPeer()
.
我主要使用Chrome(OSX,目前版本为81.0.4044.138)。我从来没有能够在Firefox上重现这种情况。
我已经捕获了几乎相同的转储的 成功 和 失败 的情况下使用chrome:/webrtc-internals。
我已经花了很多时间在这上面,但没有找到任何线索来解释为什么会失败。是否只是某种临时的本地网络中断?我可以在代码中做什么来保证100%的本地连接率吗?
我已经看到了类似的flakiness,因为mDNS候选人。尝试禁用 #enable-webrtc-hide-local-ips-with-mdns
在chrome:/flags中,看看是否有帮助!
之后,我会抓住一个 tcpdump
并确认你看到ICE的交通流量每路。