The RTCPeerConnection.onconnectionstatechange property specifies an EventHandler which is called to handle the connectionstatechange event when it occurs on an instance of RTCPeerConnection. This happens whenever the aggregate state of the connection changes. The aggregate state is a combination of the states of all of the individual network transports being used by the connection.


RTCPeerConnection.onconnectionstatechange = eventHandler;


A function which is called by the browser when the connectionstatechange event occurs on the RTCPeerConnection. The function receives as input a single parameter, which is an object of type Event. The event object contains no special information of note; you can look at the value of the peer connection's connectionState property to determine what the new state is.


pc.onconnectionstatechange = function(event) {
  switch(pc.connectionState) {
    case "connected":
      // The connection has become fully connected
    case "disconnected":
    case "failed":
      // One or more transports has terminated unexpectedly or in an error
    case "closed":
      // The connection has been closed


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCPeerConnection.onconnectionstatechange' in that specification.
Candidate Recommendation Initial specification.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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

[1] Though this property is not prefixed, the interface it belongs to was until Chrome 56.

[2] See bug 1265827 to track the status of implementing this event and the RTCPeerConnection.connectionState property.

See also

Document Tags and Contributors

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