2017-02-06 13 views
2

За последние три года, когда я использую WebRTC, где-то или другое, я буду упрямую следующей ошибки:Диагностирование WebRTC ICE Неудачи

ICE Failed, see about:webrtc for more details 

ошибка, кажется, всплывающие в самых разных местах: Если сеть отключена для однорангового узла, это приведет к сбою WebRTC (это следует ожидать); Если ответ или предложение SDP создается слишком скоро после его получения; И, казалось бы, случайным образом во время сигнализации не было никакой особой причины.

Всякий раз, когда это происходит, и я не могу это объяснить, я перейду к: webrtc и попытаюсь найти свой путь через ошибки, но поскольку у меня нет идеи того, что я ищу (и нет «ICE не удалось из-за этой вещи»), я никогда не могу понять, что случилось. В результате я обычно обречен на тестирование кода.

Очевидно, что это не лучший способ сделать это. Итак, мой вопрос: Как мне диагностировать ошибки ICE Failed в WebRTC? Что я должен искать в about:webrtc, каковы распространенные ошибки в моем коде, которые могут вызвать это, и есть ли какие-либо диагностические инструменты, о которых я должен знать?

+1

WebRTC - в то время как удивительный - очень расстраивает работу. Это не полностью стандартизировано, и это может привести к ошибке для кажущегося бесконечного перечня причин. Ответ на ваш вопрос: Удачи. Я приветствую вас за попытку и любой успех, который у вас может быть. –

ответ

3

В Chrome состояние отказа ICE будет достигнуто, если все соединения были выведены из строя, не получая успешный ответ STUN в течение 15 секунд.

Есть много 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/

Смежные вопросы