诊断WebRTC ICE故障

5
在过去的三年中,每当我使用WebRTC时,总会遇到以下错误:
ICE Failed, see about:webrtc for more details

错误似乎会在多个地方出现:如果网络关闭了其中一个对等方,导致WebRTC失败(这是可以预料的);如果在接收到一个答案或提议SDP之后太快地创建一个答案或提议SDP;以及,在信令期间随机时间似乎没有特定原因。每当发生这种情况且我无法解释时,我就会转到about:webrtc并尝试找到错误,但由于我不知道我在寻找什么(也没有“ICE failed because of this thing”),我从来没有完全弄清楚问题所在。因此,我通常注定要通过试错来测试我的代码。显然,这不是最好的方法。因此,我的问题是,如何诊断WebRTC中的ICE Failed错误?我应该在about:webrtc中寻找什么,我的代码中可能导致这种错误的常见错误是什么,是否有任何诊断工具我应该知道?

1
WebRTC虽然很棒,但是与之一起工作非常令人沮丧。它并不完全标准化,而且由于看似无尽的原因可能会出现错误。对于你的问题,我的回答是:祝你好运。我为你的尝试和任何成功向你致敬。 - The Dembinski
2个回答

5
在Chrome浏览器中,如果所有连接在15秒内没有接收到成功的STUN响应,则会进入ICE失败状态。
本地日志中有很多ICE调试消息:https://webrtc.org/native-code/logging/
但是,如果您不熟悉代码,这些日志语句将很难解释。如果您认为ICE已经达到了失败状态,而事实上不应该如此,我建议您提交错误报告并包含本地日志。

谢谢,这个答案解决了我一个巨大的头痛。我找不到任何地方提到15秒限制。 - Joff

1
我想在这里给出完整的答案可能很难。
最好的方法是查看chrome://webrtc-internals并跟踪API跟踪。这里有一个详细的解释,说明要查找什么以及常见错误: http://testrtc.com/webrtc-api-trace/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接