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
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Mai 2023 browserübergreifend verfügbar.

Das Ereignis connectionstatechange wird an den Event-Handler onconnectionstatechange eines RTCPeerConnection-Objekts gesendet, nachdem einem zur Verbindung gehörenden RTCRtpReceiver ein neuer Track hinzugefügt wurde. Der neue Verbindungsstatus ist in connectionState verfügbar und hat einen der folgenden String-Werte: new, connecting, connected, disconnected, failed oder closed.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht durch die DOM-Hierarchie weitergegeben.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

Alternativ können Sie der Event-Handler-Eigenschaft der Schnittstelle einen Wert zuweisen:

js
onconnectionstatechange = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Dieses Beispiel verwendet addEventListener(), um Änderungen am Verbindungsstatus der WebRTC-Sitzung einer RTCPeerConnection namens peerConnection zu verarbeiten. Es ruft die anwendungsspezifische Funktion setOnlineStatus() auf, 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;
  }
});

Sie können auch über die Eigenschaft RTCPeerConnection.onconnectionstatechange einen Handler für das Ereignis connectionstatechange erstellen. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über onconnectionstatechange hinzugefügte Event-Listener ersetzt werden:

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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch