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 dem RTCIceCandidateStats-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 im RTCTransportStats 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 Typ transport zu suchen, das ein RTCTransportStats-Objekt ist. Die selectedCandidatePairId-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.

js
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