このエラーが発生しましたDOMException: Error processing ICE candidate
氷の候補を追加しようとしたとき。ここに候補があります:
候補:1278028030 1 udp 2122260223 10.0.18.123 62694 typホスト生成0 ufrag eGOGlVCnFLZYKTscネットワークID 1
さらに、それは常に起こるわけではありません-他の時はすべてがスムーズに行きます。このエラーがスローされる一貫したパターンを再現できません。これを解決/デバッグする方法についてのアイデアは、いただければ幸いです!
この問題はほとんど完全に文書化されておらず、さらに悪いことに、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.
したがって、Chromeの最新ビルドに従ってリモートの説明を設定せずにICE候補を追加することはできません。また、2017年はFacebook Messengerを除いてwebRTCの進展がないため、これは近い将来に有効と思われます。
呼び出すことを忘れないでください
if(!peerConnection || !peerConnection.remoteDescription.type){
//Push candidate onto queue...
}
リモートの説明を設定したら、キューを反復して、ピア接続が正しい状態の候補を追加します。
このエラーは、自分のピア(ローカル)IDに接続しようとした場合にも発生する可能性があります。
これは古くなっているかもしれませんが、同じエラーが発生しました、
Chrome i got _DOMException: Error processing ICE candidate
_、
Firefoxでは、DOMException
のみを示すエラーがありました。
追加のメッセージは次のとおりです:"Invalid candidate (both sdpMid and sdpMLineIndex are null)."
、それはまさにその通りでした。私は、氷の候補についてシグナリングサーバーから受け取った応答からそれらを実際には使用しませんでした。
信号を受信したときにこれらの2つの値を使用すると、このエラーが再発するのを防ぐことができました。
これが他の誰かを助けることを願っています。
複数のRTCPeerConnection
オブジェクトを保持している場合は、ICEの候補と説明を正しいものに追加していることを確認する必要があります。
SetRemoteDescriptionを呼び出す前に候補を追加していますか? Firefox 36では、リモートの説明の前に候補者を送信するという問題がありましたが、それはずっと以前から解決されています。
私が2回目のオファーアンサーをすると、うまくいきます。なぜこれが必要なのかよくわかりません。