RTCPeerConnection.close()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

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

関連情報