RTCIceTransport: gatheringstatechange event
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2024.
A gatheringstatechange event is sent to an RTCIceTransport when its ICE candidate gathering state changes.
The gathering state, whose actual status can be found in the transport object's gatheringState property, indicates whether or not the ICE agent has begun gathering candidates on this transport, and if so, if it has finished doing so.
This event is not cancelable and does not bubble.
Syntax
Use the event name in addEventListener():
addEventListener("gatheringstatechange", (event) => { })
Alternatively, assign to the event handler property of the interface:
ongatheringstatechange = (event) => { }
Event type
A generic Event.
Examples
This example creates a handler for gatheringstatechange events on each RTCRtpSender associated with a given RTCPeerConnection. Here, the addEventListener() method is called to add a listener for gatheringstatechange events:
pc.getSenders().forEach((sender) => {
sender.transport.iceTransport.addEventListener(
"gatheringstatechange",
(ev) => {
let transport = ev.target;
if (transport.gatheringState === "complete") {
/* this transport has finished gathering candidates,
but others may still be working on it */
}
},
);
});
Likewise, you can use the ongatheringstatechange event handler property (but note that this replaces other event listeners added using ongatheringstatechange, if any):
pc.getSenders().forEach((sender) => {
sender.transport.iceTransport.ongatheringstatechange = (ev) => {
let transport = ev.target;
if (transport.gatheringState === "complete") {
/* this transport has finished gathering candidates,
but others may still be working on it */
}
};
});
Specifications
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-icetransport-gatheringstatechange> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcicetransport-ongatheringstatechange> |