RTCPeerConnection の反対側がいつ切断されたかを検出しようとしています。現在、RTCPeerConnection オブジェクトで次のことを行っています。
rtcPeerConnection.oniceconnectionstatechange = () => {
const state = rtcPeerConnection.iceConnectionState;
if (state === "failed" || state === "closed") {
// connection to the peer is lost and unsalvageable, run cleanup code
} else if (state === "disconnected") {
// do nothing in the "disconnected" state as it appears to be a transient
// state that can easily return to "connected" - I've seen this with Firefox
}
};
これは、非常に単純なネットワーク条件での私の限られたテストでは機能するようですが、MDNからの次のことは、おそらく本番環境では持ちこたえられないだろうという一時停止を与えます:
もちろん、「切断」および「クローズ」は必ずしもエラーを示しているわけではありません。これらは通常の ICE ネゴシエーションの結果である可能性があるため、これらを適切に処理してください (該当する場合)。
代わりに、またはRTCPeerConnection.onconnectionstatechange
の場合、接続を永久に閉じたものを使用して検討する必要RTCPeerConnection.connectionState
がありますか?"closed"
"failed"
"disconnected"