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

瀏覽器相容性

另見