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 Dictionary RTCPeerConnectionStats der WebRTC API stellt Informationen über die übergeordnete Peer-Verbindung (RTCPeerConnection) bereit.

Insbesondere stellt es die Anzahl eindeutiger Datenkanäle bereit, die geöffnet wurden, sowie die Anzahl geöffneter Kanäle, die geschlossen wurden. Dadurch kann die aktuelle Anzahl offener Kanäle berechnet werden.

Diese Statistiken können abgerufen werden, indem Sie den von RTCPeerConnection.getStats() zurückgegebenen RTCStatsReport durchlaufen, bis Sie einen Bericht mit dem type peer-connection finden.

Instanzeigenschaften

dataChannelsOpened

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

dataChannelsClosed

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

Gemeinsame Instanzeigenschaften

Die folgenden Eigenschaften sind allen WebRTC-Statistikobjekten gemeinsam.

id

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

timestamp

Ein DOMHighResTimeStamp-Objekt, das den Zeitpunkt angibt, zu dem die Stichprobe für dieses Statistikobjekt genommen wurde.

type

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

Beispiele

Dieses Beispiel zeigt eine Funktion, die die Gesamtzahl offener Verbindungen oder null zurückgibt, wenn keine Statistiken bereitgestellt werden. Sie könnte in einer Schleife aufgerufen werden, ähnlich dem Ansatz im Beispiel zu RTCPeerConnection.getStats().

Die Funktion wartet auf das Ergebnis eines Aufrufs von RTCPeerConnection.getStats() und durchläuft anschließend den zurückgegebenen RTCStatsReport, um nur die Statistiken vom Typ "peer-connection" abzurufen. Anschließend gibt sie anhand der Daten im Bericht die Gesamtzahl offener Kanäle oder null zurück.

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