RTCIceTransport: selectedcandidatepairchange event
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Aselectedcandidatepairchange
event is sent to anRTCIceTransport
when theICE agent selects a new pair of candidates that describe the endpoints of a viable connection.
The pair of candidates is in turn described by anRTCIceCandidatePair
object which contains oneRTCIceCandidate
representing the local end of the connection, and another representing the remote end of the connection.
Together, the candidates can be used to establish a connection to be used by theRTCIceTransport
, and, by extension, by anRTCPeerConnection
.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods likeaddEventListener()
, or set an event handler property.
addEventListener("selectedcandidatepairchange", (event) => { })onselectedcandidatepairchange = (event) => { }
Event type
A genericEvent
.
Examples
This example creates an event handler forselectedcandidatepairchange
that updates a display providing the user information about the progress of the ICE negotiation for anRTCPeerConnection
calledpc
.
let iceTransport = pc.getSenders()[0].transport.iceTransport;let localProtoElem = document.getElementById("local-protocol");let remoteProtoElem = document.getElementById("remote-protocol");iceTransport.addEventListener( "selectedcandidatepairchange", (ev) => { let pair = iceTransport.getSelectedCandidatePair(); localProtoElem.innerText = pair.local.protocol.toUpperCase(); remoteProtoElem.innerText = pair.remote.protocol.toUpperCase(); }, false,);
This can also be done by setting theonselectedcandidatepairchange
event handler property directly.
let iceTransport = pc.getSenders()[0].transport.iceTransport;let localProtoElem = document.getElementById("local-protocol");let remoteProtoElem = document.getElementById("remote-protocol");iceTransport.onselectedcandidatepairchange = (ev) => { let pair = iceTransport.getSelectedCandidatePair(); localProtoElem.innerText = pair.local.protocol.toUpperCase(); remoteProtoElem.innerText = pair.remote.protocol.toUpperCase();};
Specifications
Specification |
---|
WebRTC: Real-Time Communication in Browsers # event-icetransport-selectedcandidatepairchange |
WebRTC: Real-Time Communication in Browsers # dom-rtcicetransport-onselectedcandidatepairchange |