RTCIceCandidatePairStats
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.
* Some parts of this feature may have varying levels of support.
Das RTCIceCandidatePairStats
Wörterbuch der WebRTC-API wird verwendet, um Statistiken zu berichten, die Einblicke in die Qualität und Leistung einer RTCPeerConnection
bieten, während diese verbunden und konfiguriert ist, wie es durch das spezifizierte Paar von ICE-Kandidaten beschrieben wird.
Die Statistiken können erhalten werden, indem der RTCStatsReport
durchlaufen wird, der von RTCPeerConnection.getStats()
zurückgegeben wird, bis Sie einen Eintrag mit dem type
von "candidate-pair"
finden.
Instanz-Eigenschaften
availableIncomingBitrate
Optional-
Eine Zahl, die die verfügbare eingehende Kapazität des Netzwerks darstellt. Diese gibt die gesamte Anzahl der Bits pro Sekunde an, die für alle eingehenden RTP-Streams des Kandidatenpaares verfügbar sind. Dabei wird die Größe des Internet-Protokolls (IP) Overheads, sowie andere Transportschichten wie TCP oder UDP nicht berücksichtigt.
availableOutgoingBitrate
Optional-
Eine Zahl, die die ungefähre verfügbare ausgehende Kapazität des Netzwerks darstellt. Diese gibt die gesamte Anzahl der Bits pro Sekunde an, die für alle ausgehenden RTP-Streams des Kandidatenpaares verfügbar sind. Auch hier wird die Größe des IP Overheads sowie andere Transportschichten wie TCP oder UDP nicht berücksichtigt.
bytesDiscardedOnSend
Optional Experimentell-
Eine ganze Zahl, die die Gesamtzahl der Bytes darstellt, die aufgrund von Socket-Fehlern bei diesem Kandidatenpaar verworfen wurden.
bytesReceived
Optional-
Eine ganze Zahl, die die Gesamtzahl der Nutzdatenbytes darstellt, die bei diesem Kandidatenpaar empfangen wurden.
bytesSent
Optional-
Eine ganze Zahl, die die Gesamtanzahl der Nutzdatenbytes darstellt, die bei diesem Kandidatenpaar gesendet wurden (die Gesamtanzahl der gesendeten Bytes ohne Berücksichtigung von Headern, Auffüllung oder anderem Protokolloverhead).
consentRequestsSent
Optional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der STUN-Zustimmungsanforderungen darstellt, die bei diesem Kandidatenpaar gesendet wurden.
currentRoundTripTime
Optional-
Eine Zahl, die die Gesamtzeit in Sekunden darstellt, die zwischen dem zuletzt gesendeten STUN-Anforderung und dem Erhalt der Antwort verstrichen ist. Diese kann auf Anfragen basieren, die in der Bestätigung der Erlaubnis, die Verbindung zu öffnen, involviert waren.
lastPacketReceivedTimestamp
Optional-
Ein
DOMHighResTimeStamp
-Wert, der die Zeit angibt, zu der das letzte Paket von der lokalen Gegenstelle von der entfernten Gegenstelle für dieses Kandidatenpaar empfangen wurde. Zeitstempel werden für STUN-Pakete nicht aufgezeichnet. lastPacketSentTimestamp
Optional-
Ein
DOMHighResTimeStamp
-Wert, der die Zeit angibt, zu der das letzte Paket von der lokalen Gegenstelle zur entfernten Gegenstelle für dieses Kandidatenpaar gesendet wurde. Zeitstempel werden für STUN-Pakete nicht aufgezeichnet. localCandidateId
Optional-
Ein String, der die eindeutige ID darstellt, die dem
RTCIceCandidate
aus den in demRTCIceCandidateStats
-Objekt enthaltenen Daten entspricht und Statistiken für den lokalen Kandidaten des Kandidatenpaares bereitstellt. nominated
Optional-
Ein boolescher Wert, der, wenn
true
, anzeigt, dass das durch dieses Objekt beschriebene Kandidatenpaar vorgeschlagen wurde und verwendet wird (oder wurde), wenn seine Priorität die höchste unter den nominierten Kandidatenpaaren ist. Siehe RFC 5245, Abschnitt 7.1.3.2.4 für Details. packetsDiscardedOnSend
Optional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die aufgrund von Socket-Fehlern bei diesem Kandidatenpaar verworfen wurden.
packetsReceived
Optional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die bei diesem Kandidatenpaar empfangen wurden.
packetsSent
Optional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die bei diesem Kandidatenpaar gesendet wurden.
remoteCandidateId
Optional-
Ein String, der eine eindeutige ID enthält, die dem entfernten Kandidaten entspricht, aus dem Daten entnommen wurden, um das
RTCIceCandidateStats
-Objekt zu konstruieren, das das entfernte Ende der Verbindung beschreibt. requestsReceived
Optional-
Eine ganze Zahl, die die Gesamtanzahl der empfangenen Konnektivitätsprüfungsanforderungen darstellt, einschließlich der erneuten Übertragungen. Dieser Wert umfasst sowohl Konnektivitätsprüfungen als auch STUN-Zustimmungsprüfungen.
requestsSent
Optional-
Eine ganze Zahl, die die Gesamtanzahl der gesendeten Konnektivitätsprüfungsanforderungen darstellt, nicht einschließlich der erneuten Übertragungen.
responsesReceived
Optional-
Eine ganze Zahl, die die Gesamtanzahl der erhaltenen Konnektivitätsprüfungsantworten darstellt.
responsesSent
Optional-
Eine ganze Zahl, die die Gesamtanzahl der gesendeten Konnektivitätsprüfungsantworten darstellt. Dies umfasst sowohl Konnektivitätsprüfungsanforderungen als auch STUN-Zustimmungsanforderungen.
state
Optional-
Ein String, der den Zustand der Verbindung zwischen den beiden Kandidaten angibt.
totalRoundTripTime
Optional-
Eine Zahl, die die gesamte Zeit in Sekunden angibt, die zwischen dem Senden von STUN-Anfragen und dem Erhalten von Antworten darauf verstrichen ist, für alle auf diesem Kandidatenpaar bis dato gestellten Anfragen. Dies umfasst sowohl Konnektivitätsprüfungen als auch Zustimmungsprüfungsanforderungen. Sie können die durchschnittliche Round-Trip-Zeit (RTT) berechnen, indem Sie diesen Wert durch
responsesReceived
teilen. transportId
Optional-
Ein String, der das
RTCIceTransport
eindeutig identifiziert, das inspiziert wurde, um die transportbezogenen Statistiken (wie imRTCTransportStats
zu finden) zu erhalten, die zur Übermittlung dieses Objekts genutzt wurden.
Gemeinsame Instanz-Eigenschaften
Die folgenden Eigenschaften sind allen WebRTC-Statistikobjekten gemeinsam.
id
-
Ein String, der das Objekt eindeutig identifiziert, das überwacht wird, um diesen Satz von Statistiken zu erzeugen.
timestamp
-
Ein
DOMHighResTimeStamp
-Objekt, das den Zeitpunkt angibt, zu dem die Stichprobe für dieses Statistikobjekt genommen wurde. type
-
Ein String mit dem Wert
"candidate-pair"
, der den Typ der Statistiken angibt, die das Objekt enthält.
Veraltete Eigenschaften
Die folgenden Eigenschaften wurden aus der Spezifikation entfernt und sollten nicht mehr verwendet werden. Sie sollten vorhandenen Code so bald wie möglich aktualisieren, um ihre Verwendung zu vermeiden. Prüfen Sie die Kompatibilitätstabelle für Details darüber, welche Browser sie unterstützen und in welchen Versionen.
priority
Veraltet Optional Nicht standardisiert-
Ein ganzzahliger Wert, der die Priorität des Kandidatenpaares angibt.
readable
Veraltet Optional Nicht standardisiert-
Ein boolescher Wert, der angibt, ob Daten über die Verbindung gesendet werden können, die durch das Kandidatenpaar beschrieben wird.
writable
Veraltet Optional Nicht standardisiert-
Ein boolescher Wert, der angibt, ob Daten über die Verbindung empfangen werden können, die durch das Kandidatenpaar beschrieben wird.
Nicht standardmäßige Eigenschaften
selected
Nicht standardisiert Optional-
Ein Firefox-spezifischer boolescher Wert, der
true
ist, wenn das durch dieses Objekt beschriebene Kandidatenpaar das derzeit verwendete ist. Die spezifikationskonforme Methode zur Bestimmung des ausgewählten Kandidatenpaares besteht darin, ein Statistikobjekt vom Typtransport
zu suchen, das einRTCTransportStats
-Objekt ist. DieselectedCandidatePairId
-Eigenschaft dieses Objekts gibt an, ob der angegebene Transport derjenige ist, der verwendet wird.
Nutzungshinweise
Das derzeit aktive ICE-Kandidatenpaar – falls vorhanden – kann durch Aufrufen der RTCIceTransport
-Methode getSelectedCandidatePair()
erhalten werden, die ein RTCIceCandidatePair
-Objekt zurückgibt oder null
, wenn kein Paar ausgewählt ist. Das aktive Kandidatenpaar beschreibt die aktuelle Konfiguration der beiden Enden der RTCPeerConnection
.
Jedes Kandidatenpaar, das nicht das aktive Paar der Kandidaten für einen Transport ist, wird gelöscht, wenn der RTCIceTransport
einen ICE-Neustart durchführt, woraufhin der state
des ICE-Transports wieder auf new
gesetzt wird und die Verhandlung erneut beginnt. Weitere Informationen finden Sie unter ICE-Neustart.
Beispiel
Dieses Beispiel berechnet die durchschnittliche Zeit, die zwischen Konnektivitätsprüfungen vergangen ist.
if (rtcStats && rtcStats.type === "candidate-pair") {
let elapsed =
(rtcStats.lastRequestTimestamp - rtcStats.firstRequestTimestamp) /
rtcStats.requestsSent;
console.log(`Average time between ICE connectivity checks: ${elapsed} ms.`);
}
Der Code beginnt damit, rtcStats
dahingehend zu überprüfen, ob sein type
candidate-pair
ist. Wenn dies der Fall ist, wissen wir, dass rtcStats
in der Tat ein RTCIceCandidatePairStats
-Objekt ist. Wir können dann die durchschnittliche Zeit berechnen, die zwischen STUN-Konnektivitätsprüfungen vergangen ist, und diese Informationen protokollieren.
Spezifikationen
Specification |
---|
Identifiers for WebRTC's Statistics API # dom-rtcstatstype-candidate-pair |