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。

規範

此特性似乎未在任何規範中定義。

瀏覽器相容性

另見