Web/API/RTCIceCandidate/type

From Get docs


The RTCIceCandidate interface's read-only type specifies the type of candidate the object represents.

The type field's value is set when the RTCIceCandidate() constructor is used. You can't specify the value of type in the options object, but the address is automatically extracted from the candidate a-line, if it's formatted properly, being taken from its cand-type field.

Syntax

var type = RTCIceCandidate.type;

Value

A DOMString whose value is one of those defined by the RTCIceCandidateType enumerated type.

These candidate types are listed in order of priority; the higher in the list they are, the more efficient they are.

host
The candidate is a host candidate, whose IP address as specified in the RTCIceCandidate.ip property is in fact the true address of the remote peer.
srflx
The candidate is a server reflexive candidate; the ip indicates an intermediary address assigned by the STUN server to represent the candidate's peer anonymously.
prflx
The candidate is a peer reflexive candidate; the ip is an intermediary address assigned by the STUN server to represent the candidate's peer anonymously.
relay
The candidate is a relay candidate, obtained from a TURN server. The relay candidate's IP address is an address the TURN server uses to forward the media between the two peers.


If type is null, that information was missing from the candidate's a-line, which will cause RTCPeerConnection.addIceCandidate() to throw an OperationError exception.

Example

In this example, the candidate's type is used to present a modified user interface for host candidates (those where the ip refers directly to the remote peer, rather than an intermediary).

if (candidate.type == "host") {
  showHostControls();
} else {
  hideHostControls();
}

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between BrowsersThe definition of 'RTCIceCandidate.type' 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
type Chrome

Full support 74

Edge

Full support ≤18

Firefox

No support No

IE

No support No

Opera

No support No

Safari

?

WebView Android

Full support 74

Chrome Android

Full support 74

Firefox Android

No support No

Opera Android

No support No

Safari iOS

?

Samsung Internet Android

Full support 11.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown


See also