RTCIceTransport: statechange 事件

Baseline 2024
新推出

自 ⁨2024 年 4 月⁩ 起,此功能可在最新的裝置和瀏覽器版本中執行。此功能可能不適用於較舊的裝置或瀏覽器。

RTCIceTransport 狀態改變時,會發生 statechange 事件。可以透過 state 屬性來確定在成功連線兩個對等端進行 WebRTC 通訊之前,檢查、驗證和選擇有效候選對的過程進行了多遠。

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

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onstatechange = (event) => { }

事件型別

一個通用的 Event

示例

給定一個 RTCPeerConnection 物件 pc,以下程式碼建立一個事件處理程式,當 ICE transport 進入失敗狀態時,該處理程式會呼叫一個名為 handleFailure() 的函式。

js
let iceTransport = pc.getSenders()[0].transport.iceTransport;

iceTransport.addEventListener("statechange", (ev) => {
  if (iceTransport.state === "failed") {
    handleFailure(pc);
  }
});

使用 onstatechange 事件處理程式屬性的相同程式碼如下所示:

js
let iceTransport = pc.getSenders()[0].transport.iceTransport;

iceTransport.onstatechange = (ev) => {
  if (iceTransport.state === "failed") {
    handleFailure(pc);
  }
};

規範

規範
WebRTC:瀏覽器中的即時通訊
# event-icetransport-statechange
WebRTC:瀏覽器中的即時通訊
# dom-rtcicetransport-onstatechange

瀏覽器相容性

另見