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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
close

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報