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 denopen
-Zustand übergegangen sind. dataChannelsClosed
-
Ein positiver ganzzahliger Wert, der die Anzahl der einzigartigen
RTCDataChannel
-Objekte angibt, die denopen
-Zustand in ihrem Lebenszyklus verlassen haben (Kanäle, die in den Zustandclosing
oderclosed
übergehen, ohne jemalsopen
gewesen zu sein, werden in dieser Zahl nicht berücksichtigt). Ein Kanal verlässt denopen
-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.
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 |