RTCIceCandidate: relatedAddress-Eigenschaft
Baseline 2024>
Neu verfügbar
Seit Mai 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die schreibgeschützte relatedAddress-Eigenschaft des RTCIceCandidate-Interfaces ist ein String, der die zugehörige Adresse eines Relay- oder reflexiven Kandidaten angibt.
Wenn der Kandidat ein Host-Kandidat ist (d.h. seine address ist tatsächlich die echte IP-Adresse des entfernten Peers), ist relatedAddress null.
Der Wert des Feldes relatedAddress wird aus dem candidateInfo-Optionsobjekt festgelegt, das an den RTCIceCandidate()-Konstruktor übergeben wird. Sie können den Wert von relatedAddress nicht direkt im Optionsobjekt angeben, aber sein Wert wird automatisch aus der candidate a-line des Objekts extrahiert, wenn sie korrekt formatiert ist (das rel-address-Feld).
Die zugehörige Adresse und der Port (relatedPort) werden von ICE selbst überhaupt nicht verwendet; sie werden nur zu Analyse- und Diagnosezwecken bereitgestellt, und ihre Einbeziehung kann durch Sicherheitssysteme blockiert werden, daher sollten Sie nicht darauf vertrauen, dass sie nicht-null-Werte haben.
Wert
Ein String, der die zugehörige Adresse des Kandidaten enthält. Für sowohl Peer- als auch Server-reflexive Kandidaten sind die zugehörige Adresse (und der zugehörige Port) die Basis für diesen Server- oder Peer-reflexiven Kandidaten. Bei Relay-Kandidaten werden die zugehörige Adresse und der Port auf die vom TURN-Server ausgewählte abgebildete Adresse gesetzt.
Für Host-Kandidaten ist relatedAddress null, was bedeutet, dass das Feld nicht in der a-line des Kandidaten enthalten ist.
Verwendungshinweise
Die zugehörige Adresse ist in ICE-Kandidaten enthalten, obwohl sie von ICE selbst nicht verwendet wird.
relatedAddress kann für Diagnosezwecke verwendet werden; indem die Beziehungen zwischen den verschiedenen Arten von Kandidaten und ihren Adressen und zugehörigen Adressen beobachtet werden.
relatedAddress kann auch von Quality-of-Service (QoS)-Mechanismen verwendet werden.
Hier ist eine SDP-Attributzeile (a-line), die einen vom STUN-Server entdeckten ICE-Kandidaten beschreibt:
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 6502 typ srflx raddr 198.51.100.45 rport 32768 generation 0
Die entfernte Adresse, relatedAddress, ist die gepunktete Quad (für IPv4) oder durch Doppelpunkte abgegrenzte 64-Bit-Adresse (für IPv6) unmittelbar nach dem Text "raddr" oder "198.51.100.45".
Beispiele
In diesem Beispiel wird der type des Kandidaten überprüft und basierend auf dem Kandidatentyp Debug-Ausgaben einschließlich der ip und relatedAddress des Kandidaten bereitgestellt.
switch (candidate.type) {
case "host":
console.log(`Host candidate's IP address is ${candidate.address}`);
break;
case "srflx":
console.log(
`Server reflexive candidate's base address is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
case "prflx":
console.log(
`Peer reflexive candidate's base address is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
case "relay":
console.log(
`Relay candidate's address assigned by the TURN server is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
}
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcicecandidate-relatedaddress> |