诊断 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期

故障诊断分析基于matlab FFT轴承故障诊断(包络谱)含Matlab源码 2002期

变频电源出现故障了怎么办,该如何去诊断呢

电脑故障起因与诊断

实时即未来,车联网项目之远程诊断实时故障分析

实时即未来,车联网项目之远程诊断实时故障分析