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
RTCDataChannelObjekte angibt, die während ihrer Lebensdauer in denopenZustand eingetreten sind. dataChannelsClosed-
Ein positiver ganzzahliger Wert, der die Anzahl der eindeutigen
RTCDataChannelObjekte angibt, die während ihrer Lebensdauer denopenZustand verlassen haben (Kanäle, die in denclosingoderclosedZustand wechseln, ohne jemalsopengewesen zu sein, werden in dieser Zahl nicht gezählt). Ein Kanal verlässt denopenZustand, 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
DOMHighResTimeStampObjekt, 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.
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> |