RTCPeerConnection.close()

RTCPeerConnection.close() メソッドは、現在のピア接続を閉じます。

構文

js
close()

このメソッドには引数がなく、何も返しません。

このメソッドを呼び出すと、RTCPeerConnection の ICE エージェントが終了し、進行中の ICE 処理とアクティブなストリームがすべて終了します。また、TURN 権限を含め、ICE エージェントが使用するすべてのリソースを解放します。このメソッドを返すと、すべての RTCRtpSender オブジェクトが停止したとみなされます(まだ停止中かもしれませんが、どう考えても停止しています)。

このメソッドが返されると、RTCPeerConnection.signalingState が返す信号状態は closed となります。

同じリモートピアーに接続する新しい接続を作成する前に、前回の RTCPeerConnection への参照をすべて delete するようにしてください(ブラウザーによってはエラーが発生する場合があります)。

js
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");

dc.onmessage = (event) => {
  console.log(`received: ${event.data}`);
  pc.close(); // 最初の受信メッセージで閉じることを決定した
};

dc.onopen = () => {
  console.log("datachannel open");
};

dc.onclose = () => {
  console.log("datachannel close");
};

仕様書

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcpeerconnection-close

ブラウザーの互換性

BCD tables only load in the browser

関連情報