RTCPeerConnection: iceConnectionState property
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.
TheiceConnectionState read-only property of theRTCPeerConnection interface returns a string which state of theICE agent associated with theRTCPeerConnection:new,checking,connected,completed,failed,disconnected, andclosed.
It describes the current state of the ICE agent and its connection to the ICE server;that is, theSTUN orTURN server.
You can detect when this value has changed by watching for theiceconnectionstatechange event.
In this article
Value
The current state of the ICE agent and its connection. The value is one of the following strings:
newThe ICE agent is gathering addresses or is waiting to be given remote candidates through calls to
RTCPeerConnection.addIceCandidate()(or both).checkingThe ICE agent has been given one or more remote candidates and is checking pairs of local and remote candidates against one anotherto try to find a compatible match, but has not yet found a pair which will allow the peer connection to be made.It is possible that gathering of candidates is also still underway.
connectedA usable pairing of local and remote candidates has been found for all components of the connection, and the connection has been established.It is possible that gathering is still underway, and it is also possible that the ICE agent is still checking candidates against one another looking for a better connection to use.
completedThe ICE agent has finished gathering candidates, has checked all pairs against one another, and has found a connection for all components.
failedThe ICE candidate has checked all candidates pairs against one another and has failed to find compatible matches for all components of the connection.It is, however, possible that the ICE agent did find compatible connections for some components.
disconnectedChecks to ensure that components are still connected failed for at least one component of the
RTCPeerConnection.This is a less stringent test thanfailedand may trigger intermittently and resolve just as spontaneously on less reliable networks, or during temporary disconnections.When the problem resolves, the connection may return to theconnectedstate.closedThe ICE agent for this
RTCPeerConnectionhas shut down and is no longer handling requests.
Examples
const pc = new RTCPeerConnection();const state = pc.iceConnectionState;Specifications
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-peerconnection-ice-connection-state> |