RTCDataChannel: close 事件

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

当数据通道的数据传输已关闭时,会向 RTCDataChannel 实例上的 onclose 事件处理程序发送 close 事件。在可以使用 RTCDataChannel 传输任何进一步数据之前,必须创建一个新的 'RTCDataChannel' 实例。

此事件不可取消,也不会冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("close", (event) => { })

onclose = (event) => { }

事件类型

一个通用的 Event

示例

此示例为名为 dcRTCDataChannel 设置了 close 事件的事件处理程序;在此示例中,其职责是更新用户界面元素,以反映不再有正在进行的呼叫,并允许启动新呼叫。

js
dc.addEventListener("close", (ev) => {
  messageInputBox.disabled = true;
  sendButton.disabled = true;
  connectButton.disabled = false;
  disconnectButton.disabled = true;
});

响应接收 close 事件,此代码所做的就是禁用输入框及其“发送”按钮,并启用用于启动呼叫的按钮(同时禁用结束呼叫的按钮)。

您还可以使用 onclose 事件处理程序属性来设置 close 事件的事件处理程序。

js
dc.onclose = (ev) => {
  messageInputBox.disabled = true;
  sendButton.disabled = true;
  connectButton.disabled = false;
  disconnectButton.disabled = true;
};

规范

规范
WebRTC:浏览器中的实时通信
# event-datachannel-close
WebRTC:浏览器中的实时通信
# dom-rtcdatachannel-onclose

浏览器兼容性

另见