RTCDataChannel: close() 方法
RTCDataChannel.close()
方法关闭 RTCDataChannel
。任何一方都可以调用此方法来启动通道的关闭。
数据通道的关闭不是即时的。关闭连接的大部分过程都是异步处理的;您可以通过监视数据通道上的 close
事件来检测通道何时完成关闭。
调用此方法后发生的事件序列
RTCDataChannel.readyState
设置为closing
。- 建立一个后台任务来处理以下剩余步骤,并且
close()
返回给调用者。 - 传输层处理任何缓冲的消息;协议层决定是否发送或丢弃它们。
- 关闭底层数据传输。
RTCDataChannel.readyState
属性设置为closed
。- 如果传输以错误方式关闭,则
RTCDataChannel
将收到一个error
事件,其name
设置为NetworkError
。 - 一个
close
事件发送到通道。
语法
js
close()
参数
无。
返回值
无 (undefined
)。
示例
js
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
dc.close(); // We decided to close after the first received message
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
// Now negotiate the connection and so forth…
规范
规范 |
---|
WebRTC:浏览器中的实时通信 # dom-rtcdatachannel-close |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。