The RTCIceCandidate
interface's read-only protocol
property is a string which indicates whether the candidate uses UDP or TCP as its transport protocol. protocol
is null
by default if not specified properly in the SDP, but this is an error condition and will result in a thrown exception when you call RTCPeerConnection.addIceCandidate()
.
The protocol
property's value is set when the RTCIceCandidate()
constructor is used. The value is automatically extracted from the candidate
a-line, if it's formatted properly.
var protocol = RTCIceCandidate.protocol;
A DOMString
which indicates what network protocol the candidate uses, UDP or TCP. These values are defined by the enumerated type RTCIceProtocol
:
"tcp"
tcpType
property provides additional information about the kind of TCP candidate represented by the object."udp"
Note: If protocol
is null
— and protocol
is supported by the user agent — passing the candidate to addIceCandidate()
will fail, throwing an OperationError
exception.
Here's an example candidate a-line from an ICE transaction:
a=candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host
The third field, "udp"
, is the protocol type, indicating that the candidate would use the UDP transport protocol.
This code snippet examines the value of protocol
to decide if it should look at the value of tcpType
to see if it's a simultaneous-open (S-O) candidate.
if (candidate.protocol == "tcp") { if (candidate.tcpType == "so") { adjustForSimultaneousOpen(candidate); }
Specification | Status | Comment |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers The definition of 'RTCIceCandidate.protocol' in that specification. | Candidate Recommendation | Initial definition. |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | No | Yes | No | No | No | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | No | No | Yes | No | No | ? | Yes |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/protocol