RTCIceTransport:statechange 事件

RTCIceTransport 状态发生变化时,会发生statechange事件。可以使用 state 来确定在成功连接两个 WebRTC 通信对等体之前,检查、验证和选择有效候选对的过程进行到什么程度。

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

语法

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

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

onstatechange = (event) => {};

事件类型

一个通用的 Event

示例

给定一个 RTCPeerConnectionpc,以下代码创建了一个事件处理程序,如果 ICE 传输进入失败状态,则调用名为 handleFailure() 的函数。

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

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

使用 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

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅