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.
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.
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:
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