RTCPeerConnection: signalingstatechange 事件

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

RTCPeerConnection 的信令状态(由 signalingState 属性指示)发生变化时,会向其发送一个 signalingstatechange 事件进行通知。

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

语法

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

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

onsignalingstatechange = (event) => { }

事件类型

一个通用的 Event

示例

给定一个 RTCPeerConnection 对象 pc 和一个用于向用户呈现状态信息的 updateStatus() 函数,此代码设置了一个事件处理程序,以便在 ICE 协商过程完成时通知用户。

js
pc.addEventListener("signalingstatechange", (ev) => {
  switch (pc.signalingState) {
    case "stable":
      updateStatus("ICE negotiation complete");
      break;
  }
});

使用 onsignalingstatechange,效果如下:

js
pc.onsignalingstatechange = (ev) => {
  switch (pc.signalingState) {
    case "stable":
      updateStatus("ICE negotiation complete");
      break;
  }
};

规范

规范
WebRTC:浏览器中的实时通信
# event-signalingstatechange

浏览器兼容性

另见