Web/API/RTCDtlsTransport/state

From Get docs

The state read-only property of the RTCDtlsTransport interface provides information which describes a Datagram Transport Layer Security (DTLS) transport state.

Syntax

let myState = dtlsTransport.state;

Value

A string whose value is taken from the RTCDtlsTransportState enumerated type. Its value is one of the following:

new
The initial state when DTLS has not started negotiating yet.
connecting
DTLS is in the process of negotiating a secure connection and verifying the remote fingerprint.
connected
DTLS has completed negotiation of a secure connection and verified the remote fingerprint.
closed
The transport has been closed intentionally as the result of receipt of a close_notify alert, or calling RTCPeerConnection.close().
failed
The transport has failed as the result of an error (such as receipt of an error alert or failure to validate the remote fingerprint).

Examples

This example presents a function, tallySenders(), which iterates over an RTCPeerConnection's RTCRtpSenders, tallying up how many of them are in various states. The function returns an object containing properties whose values indicate how many of the senders are in each state.

let pc = new RTCPeerConnection({ bundlePolicy: "max-bundle" });

/* ... */

function tallySenders(pc) {
  let results = {
    transportMissing: 0,
    connectionPending: 0,
    connected: 0,
    closed: 0,
    failed: 0,
    unknown: 0
  };

  let senderList = pc.getSenders();
  senderList.forEach(sender => {
    let transport = sender.transport;

    if (!transport) {
      results.transportMissing++;
    } else {
      switch(transport.state) {
        case "new":
        case "connecting":
          results.connectionPending++;
          break;
       case "connected":
          results.connected++;
          break;
       case "closed":
          results.closed++;
          break;
       case "failed":
          results.failed++;
          break;
       default:
          results.unknown++;
          break;
      }
    }
  });
  return results;
}

Note that in this code, the new and connecting states are being treated as a single connectionPending status in the returned object.

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between BrowsersThe definition of 'RTCDtlsTransport.state' in that specification. Candidate Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
state Chrome

Full support 72

Edge

Full support 12

Firefox No support No

Notes'

No support No

Notes'

Notes' See bug 1307996.

IE

No support No

Opera

Full support 60

Safari

No support No

WebView Android

Full support 72

Chrome Android

Full support 72

Firefox Android No support No

Notes'

No support No

Notes'

Notes' See bug 1307996.

Opera Android

Full support 50

Safari iOS

No support No

Samsung Internet Android

Full support 11.0

Legend

Full support  
Full support
No support  
No support
See implementation notes.'
See implementation notes.


See also