RTCPeerConnection: close() 方法

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

RTCPeerConnection 接口的 close() 方法用于关闭当前的对等连接。

调用此方法会终止 RTCPeerConnection 的 ICE 代理,结束所有正在进行的 ICE 处理和所有活动的流。这还会释放 ICE 代理使用的任何资源,包括 TURN 权限。一旦此方法返回,所有 RTCRtpSender 对象都将被视为已停止(它们可能仍在停止过程中,但就所有意图和目的而言,它们已停止)。

此方法返回后,通过 RTCPeerConnection.signalingState 返回的信令状态将为 closed

请确保在尝试创建连接到同一远程对等方的新 RTCPeerConnection 之前,delete 所有对先前 RTCPeerConnection 的引用,因为这样做可能会根据浏览器而导致某些错误。

语法

js
close()

参数

无。

返回值

无 (undefined)。

示例

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

dc.onmessage = (event) => {
  console.log(`received: ${event.data}`);
  pc.close(); // We decided to close after the first received message
};

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

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

规范

规范
WebRTC:浏览器中的实时通信
# dom-rtcpeerconnection-close

浏览器兼容性

另见