RTCDtlsTransport: error 事件

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

RTCPeerConnection 上发生传输层错误时,RTCDtlsTransport 会接收到 error 事件。

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

语法

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

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

onerror = (event) => { }

事件类型

一个 RTCErrorEvent。继承自 Event

Event RTCErrorEvent

事件属性

除了 Event 接口的标准属性外,RTCErrorEvent 还包含以下内容:

error 只读

一个 RTCError 对象,指定发生的错误;该对象包括错误的类型、错误发生的位置信息(例如 SDP 中的行号,或者 SCTP 哪个原因码存在问题)。

描述

传输层错误在指定错误的 RTCError 属性 errorDetail 中具有以下值之一:

dtls-failure

DTLS 连接的协商失败,或连接以致命错误终止。错误的 message 包含错误的性质的详细信息。如果 *收到* 致命错误,错误对象的 receivedAlert 属性将设置为收到的 DTLS 警报值。另一方面,如果 *发送* 了致命错误,则 sentAlert 将设置为警报的值。

fingerprint-failure

RTCDtlsTransport 的远程证书与 SDP 中列出的任何指纹都不匹配。如果远程对端无法将其本地证书与提供的指纹匹配,则不会发生此错误,尽管这种情况可能会导致 dtls-failure 错误。

示例

在此示例中,onerror 事件处理程序属性用于设置 error 事件的处理程序。

js
transport.onerror = (ev) => {
  const err = ev.error;

  // …
};

注意: 由于 RTCError 不是旧式错误之一,所以 code 的值始终为 0。

规范

此特性似乎未在任何规范中定义。

浏览器兼容性

另见