The read-only connectionState property of the RTCPeerConnection interface indicates the current state of the peer connection by returning one of the string values specified by the enum RTCPeerConnectionState.

When this property's value changes, a connectionstatechange event is sent to the RTCPeerConnection instance.


var connectionState = RTCPeerConnection.connectionState;


The current state of the connection, as a value from the enum RTCPeerConnectionState.

RTCPeerConnectionState enum

The RTCPeerConnectionState enum defines string constants which describe states in which the RTCPeerConnection may be. These values are returned by the connectionState property. This state essentially represents the aggregate state of all ICE transports (which are of type RTCIceTransport or RTCDtlsTransport) being used by the connection.

Constant Description
"new" At least one of the connection's ICE transports (RTCIceTransports or RTCDtlsTransports) are in the "new" state, and none of them are in one of the following states: "connecting", "checking", "failed", or "disconnected", or all of the connection's transports are in the "closed" state.
"connecting" One or more of the ICE transports are currently in the process of establishing a connection; that is, their RTCIceConnectionState is either "checking" or "connected", and no transports are in the "failed" state. <<< Make this a link once I know where that will be documented
"connected" Every ICE transport used by the connection is either in use (state "connected" or "completed") or is closed (state "closed"); in addition, at least one transport is either "connected" or "completed".
"disconnected" At least one of the ICE transports for the connection is in the "disconnected" state and none of the other transports are in the state "failed", "connecting", or "checking".
"failed" One or more of the ICE transports on the connection is in the "failed" state.

The RTCPeerConnection is closed.

This value was in the RTCPeerConnectionState enum (and therefore found by reading the value of signalingState) until the May 13, 2016 draft of the specification.


var pc = new RTCPeerConnection(configuration);

/* ... */

var connectionState = pc.connectionState;


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCPeerConnection.connectionState' in that specification.
Working Draft Initial specification.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support No support No support [1] No support ? ?
"closed" state No support No support [1] No support ? ?
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support No support No support [1] No support ? ?
"closed" state No support No support No support [1] No support ? ?

[1] See bug 1265827 to track progress on implementing this property in Firefox.

See also

Document Tags and Contributors

 Contributors to this page: jpmedley, Sheppy
 Last updated by: jpmedley,