2017-02-06 104 views
2

在過去的三年裏,每當我使用的WebRTC,地方或其他,我將通過下面的錯誤進行圍追堵截:診斷的WebRTC ICE失敗

ICE Failed, see about:webrtc for more details 

的錯誤似乎有彈出在各種各樣的地方:如果網絡對於任何一個對等關閉,導致WebRTC失敗(這是可以預料的);如果在收到答覆或提議SDP後立即創建答案;而且,看起來,在信號發送期間的隨機時間沒有特別的原因。

發生這種情況時,我無法解釋它,我將頭向有關:的WebRTC,並試圖通過錯誤來找到我的路,但因爲我沒有什麼,我正在尋找一個想法(並且沒有「ICE由於這件事而失敗」),我永遠無法弄清楚什麼是錯的。結果,我通常註定要測試我的代碼。

很明顯,這不是做這件事的最好方法。所以,我的問題是,如何在WebRTC中診斷ICE Failed錯誤?我應該在about:webrtc尋找什麼,我的代碼中可能會導致這種情況的常見錯誤是什麼,以及是否有我應該瞭解的診斷工具?

+1

WebRTC - 雖然很棒 - 與工作非常令人沮喪。它沒有完全標準化,並且可能會出現看似無盡的原因列表。你的問題的答案是:祝你好運。我向你致敬,感謝你的成功。 –

回答

3

在Chrome中,如果所有連接都超時,並且在15秒內未收到成功的STUN響應,則會達到ICE失敗狀態。

有在本地日誌很多ICE調試消息:https://webrtc.org/native-code/logging/

但這些日誌報表將很難不熟悉的代碼來解釋。如果您認爲ICE達到了失敗狀態,那麼我建議您使用filing a bug幷包括本機日誌。

+0

謝謝,這個答案爲我解決了很大的難題。我可以找到任何地方都沒有提及15秒的限制 – deltaskelta

1

我想給出一個完整的答案在這裏很難做到。

最好的方法是查看chrome:// webrtc-internals並遵循API跟蹤。有關於尋找什麼和常見錯誤的詳細說明:http://testrtc.com/webrtc-api-trace/