RTCPeerConnectionStats
Словарь RTCPeerConnectionStats API WebRTC содержит информацию о соединении между peer-системами высокого уровня (RTCPeerConnection).
В частности, он предоставляет количество уникальных открытых каналов данных и количество открытых каналов, которые были закрыты. Это позволяет рассчитать текущее количество открытых каналов.
Эти статистические данные можно получить, перебирая RTCStatsReport, возвращаемые RTCPeerConnection.getStats(), пока не будет найден отчёт с type peer-connection.
Свойства экземпляра
dataChannelsOpened-
Положительное целое число, указывающее количество уникальных объектов
RTCDataChannel, которые вошли в состояниеopenза время своего существования. dataChannelsClosed-
Положительное целое число, указывающее количество уникальных объектов
RTCDataChannel, которые вышли из состоянияopenза время своего существования (каналы, которые перешли в состояниеclosingилиclosedбез предварительногоopenне учитываются в этом числе). Канал покинет состояниеopen, если какой-либо конец соединения или подлежащий транспорт закрыт.
Общие свойства экземпляра
Следующие свойства являются общими для всех объектов статистики WebRTC.
id-
Строка, которая однозначно идентифицирует объект, за которым ведется наблюдение для создания этого набора статистических данных.
timestamp-
Объект
DOMHighResTimeStamp, указывающий время, в которое была взята выборка для этого объекта статистических данных. type-
Строка со значением
"peer-connection", указывающая тип статистики, содержащейся в объекте.
Примеры
В этом примере показана функция, возвращающая общее количество открытых подключений или null в случае отсутствия статистических данных. Она может вызываться в цикле, подобно подходу, используемому в примере RTCPeerConnection.getStats().
Функция ожидает результата вызова RTCPeerConnection.getStats(), а затем перебирает возвращённый RTCStatsReport, чтобы получить только статистику типа "peer-connection". Затем она возвращает общее количество открытых каналов или null, используя данные в отчёте.
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
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
RTCPeerConnectionStats |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
dataChannelsClosed |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
dataChannelsOpened |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
id |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
timestamp |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
type |
80 | 80 | 113 | 67 | 13.1 | 80 | 113 | 57 | 13.4 | 13.0 | 80 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnectionStats