RTCPeerConnection: connectionstatechange Ereignis

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 Verbindungszustand kann in connectionState gefunden werden und ist einer der folgenden Zeichenkettenwerte: new, connecting, connected, disconnected, failed oder closed.

Dieses Ereignis ist nicht abbruchsicher und wird nicht weitergegeben.

Syntax

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

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

onconnectionstatechange = (event) => {};

Ereignistyp

Ein generisches Event.

Beispiele

Für eine RTCPeerConnection namens peerConnection verwendet dieses Beispiel addEventListener(), um Änderungen an der Konnektivität der WebRTC-Sitzung zu behandeln. Es ruft eine app-definierte Funktion namens 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;
    }
  },
  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

BCD tables only load in the browser

Siehe auch