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():
addEventListener("connectionstatechange", (event) => { })
Alternativ können Sie der Event-Handler-Eigenschaft der Schnittstelle einen Wert zuweisen:
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.
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:
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> |