2016-07-05 9 views
6

Я получаю эту ошибку DOMException: Error processing ICE candidate, когда я пытаюсь добавить кандидата на лед. Вот кандидат:DOMException: Обработка ошибки ICE

кандидат: 1278028030 1 УДП 2122260223 10.0.18.123 62694 Тип хоста поколения 0 ufrag eGOGlVCnFLZYKTsc сети идентификатор 1

Кроме того, это не всегда бывает - в другой раз все идет плавно. Я не могу воспроизвести согласованный шаблон, в котором он бы выбросил эту ошибку. Любые идеи о том, как решить эту проблему или отладить ее, будут оценены!

ответ

8

Эта проблема почти полностью недокументирована, и, что еще хуже, Google, похоже, внедряет стандарт w3 webRTC. Они также отклоняются от этого стандарта.

Однако, как это, скорее всего, что это будет происходить на Chrome (я не проверял, Firefox и Safari не реализует getUserMedia()), это сообщение об ошибке, полученный путем запуска Chrome из консоли, вероятно, поможет:

[ERROR:rtc_peer_connection_handler.cc(1439)] Error processing ICE candidate. 
[ERROR:webrtcsession.cc(1134)] ProcessIceMessage: ICE candidates can't be added without any remote session description. 

Таким образом, вы не можете добавлять кандидатов ICE без настройки удаленного описания, как в соответствии с последней версией Chrome, а так как это 2017 год без прогресса webRTC, за исключением Facebook Messenger, это выглядит действительным для обозримого будущее.

Так не забудьте позвонить

if(!peerConnection || !peerConnection.remoteDescription.type){ 
    //push candidate onto queue... 
} 

и после установки пульта дистанционного управления Описания итерации очереди, чтобы добавить кандидатов с подключением сверстников в правильном состоянии!

1

Если я делаю второй раунд предложения-предложения, он работает. Я не уверен, почему это необходимо.

1

Вы добавляете кандидата перед вызовом setRemoteDescription? У Firefox 36 была проблема, когда он отправлял кандидатов до удаленного описания, но это было решено давно.

1

Если вы храните более одного объекта RTCPeerConnection, вы должны убедиться, что вы добавили кандидатов и описания ICE в правильное.

0

Эта ошибка также может возникнуть, если вы попытаетесь подключиться к своему собственному одноранговому (локальному) идентификатору.

1

Это может быть устаревшей, но я имел такую ​​же ошибку,

На Chrome я получил DOMException: Error processing ICE candidate,

На Firefox, произошла ошибка, что только сказал DOMException.

Дополнительное сообщение было: "Invalid candidate (both sdpMid and sdpMLineIndex are null).", и это было именно так, я действительно не использовал их из ответа, который я получил от сервера сигнализации о кандидате на лед.

Используя эти 2 значения, когда я получил сигнал, эта ошибка снова не повторилась.

Надеюсь, это поможет кому-то еще.