Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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