RTCIceCandidate: Kandidat-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

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.

js
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