Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RTCPeerConnectionStats

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Mai 2023 browserübergreifend verfügbar.

Das RTCPeerConnectionStats Wörterbuch der WebRTC API liefert Informationen über die hochrangige Peer-Verbindung (RTCPeerConnection).

Insbesondere bietet es die Anzahl der eindeutigen Datenkanäle, die geöffnet wurden, und die Anzahl der geöffneten Kanäle, die geschlossen wurden. Dies ermöglicht die Berechnung der aktuellen Anzahl der offenen Kanäle.

Diese Statistiken können gewonnen werden, indem der RTCStatsReport durchlaufen wird, der von RTCPeerConnection.getStats() zurückgegeben wird, bis ein Bericht mit dem type von peer-connection gefunden wird.

Instanzeigenschaften

dataChannelsOpened

Ein positiver ganzzahliger Wert, der die Anzahl der eindeutigen RTCDataChannel Objekte angibt, die während ihrer Lebensdauer in den open Zustand eingetreten sind.

dataChannelsClosed

Ein positiver ganzzahliger Wert, der die Anzahl der eindeutigen RTCDataChannel Objekte angibt, die während ihrer Lebensdauer den open Zustand verlassen haben (Kanäle, die in den closing oder closed Zustand wechseln, ohne jemals open gewesen zu sein, werden in dieser Zahl nicht gezählt). Ein Kanal verlässt den open Zustand, wenn entweder das Ende der Verbindung oder das zugrundeliegende Transport geschlossen wird.

Allgemeine Instanzeigenschaften

Die folgenden Eigenschaften sind allen WebRTC-Statistikobjekten gemeinsam.

id

Ein String, der das Objekt, das überwacht wird, um diese Gruppe von Statistiken zu erzeugen, eindeutig identifiziert.

timestamp

Ein DOMHighResTimeStamp Objekt, das die Zeit angibt, zu der das Sample für dieses Statistikobjekt genommen wurde.

type

Ein String mit dem Wert "peer-connection", der den Typ der Statistiken anzeigt, den das Objekt enthält.

Beispiele

Dieses Beispiel zeigt eine Funktion, die die Gesamtzahl der offenen Verbindungen zurückgibt, oder null, wenn keine Statistiken bereitgestellt werden. Dies könnte in einer Schleife aufgerufen werden, ähnlich der Vorgehensweise im RTCPeerConnection.getStats() Beispiel.

Die Funktion wartet auf das Ergebnis eines Aufrufs von RTCPeerConnection.getStats() und durchläuft dann den zurückgegebenen RTCStatsReport, um nur die Statistiken des Typs "peer-connection" zu erhalten. Sie gibt dann die Gesamtzahl der offenen Kanäle oder null zurück, basierend auf den Daten im Bericht.

js
async function numberOpenConnections(peerConnection) {
  const stats = await peerConnection.getStats();
  let peerConnectionStats = null;

  for (const report of stats.values()) {
    if (report.type === "peer-connection") {
      peerConnectionStats = report;
      break;
    }
  }

  if (
    peerConnectionStats === null ||
    typeof peerConnectionStats.dataChannelsOpened === "undefined" ||
    typeof peerConnectionStats.dataChannelsClosed === "undefined"
  ) {
    return null;
  }

  return (
    peerConnectionStats.dataChannelsOpened -
    peerConnectionStats.dataChannelsClosed
  );
}

Spezifikationen

Spezifikation
Identifiers for WebRTC's Statistics API
# dom-rtcstatstype-peer-connection

Browser-Kompatibilität