诊断 WebRTC ICE 故障
Posted
技术标签:
【中文标题】诊断 WebRTC ICE 故障【英文标题】:Diagnosing WebRTC ICE Failures 【发布时间】:2017-06-23 20:06:17 【问题描述】:在过去三年中,每当我使用 WebRTC 时,我都会在某个地方或其他地方遇到以下错误:
ICE Failed, see about:webrtc for more details
这个错误似乎在很多地方都弹出了:如果任何一个节点的网络都关闭了,导致 WebRTC 失败(这是意料之中的);如果在收到答复或提议 SDP 后过早创建;而且,似乎是在无特殊原因的信号发送过程中的随机时间。
每当发生这种情况并且我无法解释时,我将前往 about:webrtc 并尝试找到解决错误的方法,但由于我不知道我在寻找什么(并且没有“ICE因为这件事而失败”),我永远无法弄清楚出了什么问题。结果,我通常注定要碰巧测试我的代码。
显然,这不是最好的方法。所以,我的问题是,如何诊断 WebRTC 中的 ICE Failed
错误? 我应该在 about:webrtc
中查找什么,我的代码中可能导致此问题的常见错误是什么,并且是有什么我应该知道的诊断工具吗?
【问题讨论】:
WebRTC - 虽然很棒 - 使用起来非常令人沮丧。它并不完全标准化,并且可能由于看似无穷无尽的原因而出错。你的问题的答案是:祝你好运。我向你致敬,感谢你的尝试和你可能取得的任何成功。 【参考方案1】:在 Chrome 中,如果所有连接都超时,15 秒内没有收到成功的 STUN 响应,则进入 ICE 故障状态。
native log中有很多ICE调试信息:https://webrtc.org/native-code/logging/
但如果不熟悉代码,这些日志语句将难以解释。如果您认为 ICE 正在达到失败状态并且它不应该,我建议您使用 filing a bug 并包括本机日志。
【讨论】:
谢谢,这个答案让我很头疼。我能找到的任何地方都没有提到 15 秒的限制【参考方案2】:我想在这里很难给出完整的答案。
最好的方法是查看 chrome://webrtc-internals 并跟踪 API 跟踪。这里有关于查找内容和常见错误的详细说明:http://testrtc.com/webrtc-api-trace/
【讨论】:
以上是关于诊断 WebRTC ICE 故障的主要内容,如果未能解决你的问题,请参考以下文章
故障诊断分析基于matlab FFT轴承故障诊断含Matlab源码 2001期