RTCPeerConnection: connectionstatechange Ereignis

Baseline 2023
Newly available

Since May 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Das connectionstatechange Ereignis wird an den onconnectionstatechange Ereignis-Handler eines RTCPeerConnection-Objekts gesendet, nachdem ein neuer Track zu einem RTCRtpReceiver hinzugefügt wurde, der Teil der Verbindung ist. Der neue Verbindungsstatus kann in connectionState gefunden werden und ist einer der String-Werte: new, connecting, connected, disconnected, failed oder closed.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergereicht.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

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

onconnectionstatechange = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Für ein RTCPeerConnection mit dem Namen peerConnection wird in diesem Beispiel addEventListener() verwendet, um Änderungen an der Konnektivität der WebRTC-Sitzung zu verarbeiten. Es wird eine app-definierte Funktion namens setOnlineStatus() aufgerufen, um eine Statusanzeige zu aktualisieren.

js
peerConnection.addEventListener(
  "connectionstatechange",
  (event) => {
    switch (peerConnection.connectionState) {
      case "new":
      case "connecting":
        setOnlineStatus("Connecting…");
        break;
      case "connected":
        setOnlineStatus("Online");
        break;
      case "disconnected":
        setOnlineStatus("Disconnecting…");
        break;
      case "closed":
        setOnlineStatus("Offline");
        break;
      case "failed":
        setOnlineStatus("Error");
        break;
      default:
        setOnlineStatus("Unknown");
        break;
    }
  },
  false,
);

Sie können auch einen Handler für das connectionstatechange Ereignis mit der RTCPeerConnection.onconnectionstatechange-Eigenschaft erstellen:

js
peerConnection.onconnectionstatechange = (ev) => {
  switch (peerConnection.connectionState) {
    case "new":
    case "connecting":
      setOnlineStatus("Connecting…");
      break;
    // …
    default:
      setOnlineStatus("Unknown");
      break;
  }
};

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcpeerconnection-onconnectionstatechange

Browser-Kompatibilität

Siehe auch