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 September 2017.

Das icegatheringstatechange Ereignis wird an den onicegatheringstatechange Ereignis-Handler eines RTCPeerConnection gesendet, wenn sich der Zustand des ICE Kandidaten-Sammlungsprozesses ändert. Dies bedeutet, dass sich der Wert der iceGatheringState Eigenschaft der Verbindung geändert hat.

Wenn ICE beginnt, Verbindungskandidaten zu sammeln, ändert sich der Wert von new zu gathering, um anzuzeigen, dass der Prozess der Sammlung von Kandidatenkonfigurationen für die Verbindung begonnen hat. Wenn sich der Wert zu complete ändert, haben alle Transporte, die das RTCPeerConnection ausmachen, die Sammlung der ICE-Kandidaten abgeschlossen.

Hinweis: Während Sie feststellen können, dass die ICE-Kandidaten-Sammlung durch das Beobachten von icegatheringstatechange Ereignissen abgeschlossen ist und überprüfen, ob der Wert der iceGatheringState complete wird, können Sie auch Ihren Handler für das icecandidate Ereignis verwenden, um zu sehen, ob seine candidate Eigenschaft null ist. Dies zeigt ebenfalls an, dass die Sammlung der Kandidaten abgeschlossen ist.

Dieses Ereignis ist nicht abbrechbar und wird nicht gebubbelt.

Syntax

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

js
addEventListener("icegatheringstatechange", (event) => { })

onicegatheringstatechange = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Dieses Beispiel erstellt einen Handler für icegatheringstatechange Ereignisse.

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

js
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

Siehe auch