RTCPeerConnectionStats

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

Insbesondere gibt es die Anzahl der einzigartigen Datenkanäle an, die geöffnet wurden, sowie 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 erhalten werden, indem der RTCStatsReport, der von RTCPeerConnection.getStats() zurückgegeben wird, durchlaufen wird, bis Sie einen Bericht mit dem type peer-connection finden.

Instanzeigenschaften

dataChannelsOpened

Ein positiver ganzzahliger Wert, der die Anzahl der einzigartigen RTCDataChannel-Objekte angibt, die in ihren Lebenszyklen in den open-Zustand übergegangen sind.

dataChannelsClosed

Ein positiver ganzzahliger Wert, der die Anzahl der einzigartigen RTCDataChannel-Objekte angibt, die den open-Zustand in ihrem Lebenszyklus 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 ein Ende der Verbindung oder das zugrundeliegende Transportmittel 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 Probe für dieses Statistikobjekt entnommen wurde.

type

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

Beispiele

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

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. Anschließend gibt sie die Gesamtanzahl der offenen Kanäle oder null mit den Daten im Bericht 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