RTCIceCandidatePairStats
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Januar 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
availableIncomingBitrateOptional-
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.
availableOutgoingBitrateOptional-
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.
bytesDiscardedOnSendOptional Experimentell-
Eine ganze Zahl, die die Gesamtzahl der Bytes darstellt, die aufgrund von Socket-Fehlern bei diesem Kandidatenpaar verworfen wurden.
bytesReceivedOptional-
Eine ganze Zahl, die die Gesamtzahl der Nutzdatenbytes darstellt, die bei diesem Kandidatenpaar empfangen wurden.
bytesSentOptional-
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).
consentRequestsSentOptional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der STUN-Zustimmungsanforderungen darstellt, die bei diesem Kandidatenpaar gesendet wurden.
currentRoundTripTimeOptional-
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.
lastPacketReceivedTimestampOptional-
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. lastPacketSentTimestampOptional-
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. localCandidateIdOptional-
Ein String, der die eindeutige ID darstellt, die dem
RTCIceCandidateaus den in demRTCIceCandidateStats-Objekt enthaltenen Daten entspricht und Statistiken für den lokalen Kandidaten des Kandidatenpaares bereitstellt. nominatedOptional-
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. packetsDiscardedOnSendOptional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die aufgrund von Socket-Fehlern bei diesem Kandidatenpaar verworfen wurden.
packetsReceivedOptional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die bei diesem Kandidatenpaar empfangen wurden.
packetsSentOptional Experimentell-
Eine ganze Zahl, die die Gesamtanzahl der Pakete darstellt, die bei diesem Kandidatenpaar gesendet wurden.
remoteCandidateIdOptional-
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. requestsReceivedOptional-
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.
requestsSentOptional-
Eine ganze Zahl, die die Gesamtanzahl der gesendeten Konnektivitätsprüfungsanforderungen darstellt, nicht einschließlich der erneuten Übertragungen.
responsesReceivedOptional-
Eine ganze Zahl, die die Gesamtanzahl der erhaltenen Konnektivitätsprüfungsantworten darstellt.
responsesSentOptional-
Eine ganze Zahl, die die Gesamtanzahl der gesendeten Konnektivitätsprüfungsantworten darstellt. Dies umfasst sowohl Konnektivitätsprüfungsanforderungen als auch STUN-Zustimmungsanforderungen.
stateOptional-
Ein String, der den Zustand der Verbindung zwischen den beiden Kandidaten angibt.
totalRoundTripTimeOptional-
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
responsesReceivedteilen. transportIdOptional-
Ein String, der das
RTCIceTransporteindeutig identifiziert, das inspiziert wurde, um die transportbezogenen Statistiken (wie imRTCTransportStatszu 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.
priorityVeraltet Optional Nicht standardisiert-
Ein ganzzahliger Wert, der die Priorität des Kandidatenpaares angibt.
readableVeraltet Optional Nicht standardisiert-
Ein boolescher Wert, der angibt, ob Daten über die Verbindung gesendet werden können, die durch das Kandidatenpaar beschrieben wird.
writableVeraltet 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
selectedNicht standardisiert Optional-
Ein Firefox-spezifischer boolescher Wert, der
trueist, 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 Typtransportzu 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> |
Browser-Kompatibilität
Loading…