RTCPeerConnection: icegatheringstatechange Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Das icegatheringstatechange
Ereignis wird an den onicegatheringstatechange
Ereignishandler auf einer RTCPeerConnection
gesendet, wenn sich der Status des ICE Kandidatensammlungsprozesses ändert. Dies zeigt an, dass sich der Wert der iceGatheringState
Eigenschaft der Verbindung geändert hat.
Wenn ICE damit beginnt, Verbindungskandidaten zu sammeln, ändert sich der Wert von new
zu gathering
, um anzuzeigen, dass der Prozess des Sammelns von Kandidatenkonfigurationen für die Verbindung begonnen hat. Wenn der Wert zu complete
wechselt, haben alle Transports, die die RTCPeerConnection
ausmachen, das Sammeln von ICE-Kandidaten abgeschlossen.
Hinweis:
Während Sie feststellen können, dass das ICE-Kandidatensammeln abgeschlossen ist, indem Sie auf icegatheringstatechange
Ereignisse achten und überprüfen, ob der Wert von iceGatheringState
complete
wird, können Sie auch Ihren Handler für das icecandidate
Ereignis überprüfen lassen, ob seine candidate
Eigenschaft null
ist. Auch dies zeigt an, dass die Sammlung der Kandidaten abgeschlossen ist.
Dieses Ereignis kann nicht abgebrochen werden und verbreitet sich nicht weiter.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
, oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("icegatheringstatechange", (event) => {});
onicegatheringstatechange = (event) => {};
Ereignistyp
Ein generisches Event
.
Beispiele
Dieses Beispiel erstellt einen Handler für icegatheringstatechange
Ereignisse.
pc.onicegatheringstatechange = (ev) => {
let connection = ev.target;
switch (connection.iceGatheringState) {
case "gathering":
/* collection of candidates has begun */
break;
case "complete":
/* collection of candidates is finished */
break;
}
};
Ebenso können Sie addEventListener()
verwenden, um einen Listener für icegatheringstatechange
Ereignisse hinzuzufügen:
pc.addEventListener(
"icegatheringstatechange",
(ev) => {
let connection = ev.target;
switch (connection.iceGatheringState) {
case "gathering":
// collection of candidates has begun
break;
case "complete":
// collection of candidates is finished
break;
}
},
false,
);
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcpeerconnection-onicegatheringstatechange |
Browser-Kompatibilität
BCD tables only load in the browser