RTCPeerConnection: icegatheringstatechange event

The icegatheringstatechange event is sent to the onicegatheringstatechange event handler on an RTCPeerConnection when the state of the ICE candidate gathering process changes. This signifies that the value of the connection's iceGatheringState property has changed.

When ICE firststarts to gather connection candidates, the value changes from new to gathering to indicate that the process of collecting candidate configurations for the connection has begun. When the value changes to complete, all of the transports that make up the RTCPeerConnection have finished gathering ICE candidates.

Bubbles No
Cancelable No
Interface Event
Event handler onicegatheringstatechange

Note: While you can determine that ICE candidate gathering is complete by watching for icegatheringstatechange events and checking for the value of iceGatheringState to become complete, you can also have your handler for the icecandidate event look to see if its candidate property is null. This also indicates that collection of candidates is finished.

Examples

This example creates a handler for icegatheringstatechange events.

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;
  }
}

Likewise, you can use addEventListener() to add a listener for icegatheringstatechange events:

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);

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
icegatheringstatechange_event
59
15
22
No
46
11
59
59
44
43
11
7.0

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event