RTCIceTransport: statechange 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 statechange event occurs when the RTCIceTransport changes state. The state can be used to determine how far through the process of examining, verifying, and selecting a valid candidate pair is prior to successfully connecting the two peers for WebRTC communications.
This event is not cancelable and does not bubble.
Syntax
Use the event name in addEventListener():
addEventListener("statechange", (event) => { })
Alternatively, assign to the event handler property of the interface:
onstatechange = (event) => { }
Event type
A generic Event.
Examples
Given an RTCPeerConnection, pc, the following code creates an event handler that calls a function named handleFailure() if the ICE transport enters a failure state.
let iceTransport = pc.getSenders()[0].transport.iceTransport;
iceTransport.addEventListener("statechange", (ev) => {
if (iceTransport.state === "failed") {
handleFailure(pc);
}
});
The same code, using the onstatechange event handler property, looks like this (but note that this replaces other event listeners added using onstatechange, if any):
let iceTransport = pc.getSenders()[0].transport.iceTransport;
iceTransport.onstatechange = (ev) => {
if (iceTransport.state === "failed") {
handleFailure(pc);
}
};
Specifications
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-icetransport-statechange> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcicetransport-onstatechange> |