RTCPeerConnectionStats

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

Insbesondere liefert es die Anzahl der einzigartigen Datenkanäle, die geöffnet wurden, sowie die Anzahl der geöffneten Kanäle, die geschlossen wurden. Dadurch kann die aktuelle Anzahl der offenen Kanäle berechnet werden.

Diese Statistiken können durch Iterieren des RTCStatsReport, das von RTCPeerConnection.getStats() zurückgegeben wird, erhalten werden, bis Sie einen Bericht mit dem type peer-connection finden.

Instanzeigenschaften

dataChannelsOpened

Ein positiver Integer-Wert, der die Anzahl der einzigartigen RTCDataChannel Objekte angibt, die während ihrer Lebenszeit in den open Zustand gewechselt sind.

dataChannelsClosed

Ein positiver Integer-Wert, der die Anzahl der einzigartigen RTCDataChannel Objekte angibt, die den open Zustand während ihrer Lebenszeit verlassen haben (Kanäle, die in den Zustand closing oder closed übergehen, ohne jemals open gewesen zu sein, werden in dieser Zahl nicht berücksichtigt). Ein Kanal verlässt den open Zustand, wenn entweder das Ende der Verbindung oder das 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 erstellen, 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 der offenen Verbindungen zurückgibt oder null, wenn keine Statistiken bereitgestellt werden. Dies könnte in einer Schleife aufgerufen werden, ähnlich wie in dem Ansatz, der im RTCPeerConnection.getStats() Beispiel verwendet wird.

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

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

  stats.forEach((report) => {
    if (report.type === "peer-connection") {
      peerConnectionStats = report;
      break;
    }
  });

result = (typeof peerConnectionStats.dataChannelsOpened === 'undefined' || typeof peerConnectionStats.dataChannelsClosed=== 'undefined') ? null : peerConnectionStats.dataChannelsOpened - peerConnectionStats.dataChannelsClosed;
return result
}

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser