このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

RTCPeerConnection.close()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年9月以降、すべてのブラウザーで利用可能です。

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");
};

仕様書

仕様書
WebRTC: Real-Time Communication in Browsers
# dom-rtcpeerconnection-close

ブラウザーの互換性

関連情報