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 Zustandopeneingetreten sind. dataChannelsClosed-
Ein positiver ganzzahliger Wert, der die Anzahl eindeutiger
RTCDataChannel-Objekte angibt, die während ihrer Lebensdauer den Zustandopenverlassen haben (Kanäle, die inclosingoderclosedübergehen, ohne jemalsopengewesen zu sein, werden bei dieser Zahl nicht gezählt). Ein Kanal verlässt den Zustandopen, 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.
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> |