RTCPeerConnection: connectionstatechange event

The connectionstatechange event is sent to the ontrack event handler on an RTCPeerConnection object after a new track has been added to an RTCRtpReceiver which is part of the connection. The new connection state can be found in connectionState, and is one of the strings in the RTCPeerConnectionState enumerated type.

Bubbles No
Cancelable No
Interface Event
Event handler onconnectionstatechange

Examples

For an RTCPeerConnection, pc, this example sets up a handler for connectionstatechange messages to handle changes to the connectivity of the WebRTC session. It simply calls an app-defined function called setOnlineStatus() to update a status display.

pc.onconnectionstatechange = ev => {
  switch(pc.connectionState) {
    case "new":
    case "checking":
      setOnlineStatus("Connecting...");
      break;
    case "connected":
      setOnlineStatus("Online");
      break;
    case "disconnected":
      setOnlineStatus("Disconnecting...");
      break;
    case "closed":
      setOnlineStatus("Offline");
      break;
    case "failed":
      setOnlineStatus("Error");
      break;
    default:
      setOnlineStatus("Unknown");
      break;
  }
}

You can also create a handler for connectionstatechange by using addEventListener():

pc.addEventListener("connectionstatechange", ev => {
  switch(pc.connectionState) {
    /* ... */
  }
}, false);

Specifications

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

Browser compatibility

No compatibility data found. Please contribute data for "event.RTCPeerConnection.connectionstatechange_event" (depth: 1) to the MDN compatibility data repository.

See also