RTCPeerConnection:close() 方法

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

语法

js
close()

此方法没有参数,也不返回任何值。

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

此方法返回后,由 RTCPeerConnection.signalingState 返回的信号状态为 closed

在尝试创建连接到相同远程对等点的新的 RTCPeerConnection 之前,请确保您已 delete 对先前 RTCPeerConnection 的所有引用,因为不这样做可能会导致某些错误,具体取决于浏览器。

示例

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参见