RTCIceTransport: statechange-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2024 browserübergreifend verfügbar.
Ein statechange-Ereignis tritt auf, wenn sich der Zustand eines RTCIceTransport ändert. Anhand von state lässt sich feststellen, wie weit das Prüfen, Verifizieren und Auswählen eines gültigen Kandidatenpaars fortgeschritten ist, bevor die beiden Peers für die WebRTC-Kommunikation erfolgreich verbunden werden.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht durch die DOM-Hierarchie weitergereicht.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("statechange", (event) => { })
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onstatechange = (event) => { }
Ereignistyp
Ein generisches Event.
Beispiele
Für eine RTCPeerConnection namens pc erstellt der folgende Code einen Event-Handler, der die Funktion handleFailure() aufruft, wenn der ICE-Transport in einen Fehlerzustand übergeht.
let iceTransport = pc.getSenders()[0].transport.iceTransport;
iceTransport.addEventListener("statechange", (ev) => {
if (iceTransport.state === "failed") {
handleFailure(pc);
}
});
Derselbe Code sieht mit der Event-Handler-Eigenschaft onstatechange wie folgt aus (beachten Sie jedoch, dass dadurch gegebenenfalls andere über onstatechange hinzugefügte Event-Listener ersetzt werden):
let iceTransport = pc.getSenders()[0].transport.iceTransport;
iceTransport.onstatechange = (ev) => {
if (iceTransport.state === "failed") {
handleFailure(pc);
}
};
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-icetransport-statechange> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcicetransport-onstatechange> |