RTCIceCandidate: Kandidat-Eigenschaft
Die schreibgeschützte Eigenschaft candidate
auf der Schnittstelle RTCIceCandidate
gibt einen String zurück, der den Kandidaten im Detail beschreibt.
Die meisten anderen Eigenschaften von RTCIceCandidate
werden tatsächlich aus diesem String extrahiert.
Diese Eigenschaft kann über die candidate
-Eigenschaft des Objekts konfiguriert werden, das in den RTCIceCandidate()
-Konstruktor oder RTCPeerConnection.addIceCandidate()
übergeben wird.
Wert
Ein String, der die Eigenschaften des Kandidaten beschreibt, direkt entnommen aus dem SDP-Attribut "candidate"
.
Der Kandidaten-String spezifiziert die Netzwerkkonnektivitätsinformationen für den Kandidaten.
Wenn der candidate
ein Leerstring (""
) ist, wurde das Ende der Kandidatenliste erreicht; dieser Kandidat ist als "end-of-candidates"-Marker bekannt.
Die Syntax des Kandidaten-Strings wird in RFC 5245, Abschnitt 15.1 beschrieben. Für eine a-line (Attributzeile), die so aussieht:
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
wird der entsprechende Wert des candidate
-Strings sein: "candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host"
.
Der user agent bevorzugt immer Kandidaten mit der höchsten
priority
, wenn sonst alle Umstände gleich sind. Im
obigen Beispiel ist die Priorität 2043278322
. Die Attribute werden alle durch ein einzelnes Leerzeichen getrennt und in einer bestimmten Reihenfolge angegeben. Die vollständige Liste der
Attribute für diesen Beispiels-Kandidaten ist:
Beispiele
In diesem Beispiel sehen wir eine Funktion, die als Eingabe einen SDP-String enthält, der einen ICE-Kandidaten beschreibt, der vom entfernten Peer während des Signalisierungsprozesses empfangen wird.
function handleNewIceCandidate(candidateSDP) {
const candidateObj = new RTCIceCandidate(candidateSDP);
myPeerConnection.addIceCandidate(candidateObj).catch({
/* handle the error thrown by addIceCandidate() */
});
}
Die hier gezeigte handleNewIceCandidate()
-Funktion überträgt den empfangenen
SDP-Text des Kandidaten an RTCIceCandidate()
, um ein RTCIceCandidate
-Objekt zu erhalten, das den Kandidaten repräsentiert.
Der neue Kandidat wird dann in RTCPeerConnection.addIceCandidate()
eingebracht, um den Kandidaten zur Liste der
Kandidaten hinzuzufügen, die WebRTC für die Verbindung in Betracht ziehen soll, die gerade aufgebaut wird.
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcicecandidate-candidate |
Browser-Kompatibilität
BCD tables only load in the browser