RTCPeerConnection: icegatheringstatechange Ereignis

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.

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

BCD tables only load in the browser

Siehe auch