RTCDataChannel: свойство bufferedAmount
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Чтение только RTCDataChannel свойство bufferedAmount возвращает количество байтов данных, в настоящее время ожидающих отправки по каналу данных. Очередь может накапливаться в результате вызовов метода send(). Это включает только данные, буферизованные самим агентом пользователя; это не включает накладные расходы на форматирование или буферизацию, выполняемые операционной системой или сетевым оборудованием.
Агент пользователя может реализовать процесс фактической отправки данных любым удобным ему способом; это может выполняться периодически во время цикла событий или действительно асинхронно. По мере фактической отправки сообщений это значение соответственно уменьшается.
Примечание: Закрытие канала данных не сбрасывает этот счётчик, даже если агент пользователя очищает очередь сообщений. Однако даже после закрытия канала попытки отправить сообщения продолжают добавляться к значению bufferedAmount , хотя сообщения ни отправляются, ни буферизуются.
Всякий раз, когда это значение уменьшается до значения, указанного в свойстве bufferedAmountLowThreshold, агент пользователя вызывает событие bufferedamountlow. Это событие можно использовать, например, для реализации кода, который добавляет больше сообщений в очередь для отправки всякий раз, когда есть место для их буферизации.
Значение
Количество байтов данных, в настоящее время ожидающих отправки по каналу данных, но ещё не отправлено.
Пример
В приведённом ниже фрагменте кода показана функция, которая изменяет содержимое блока с идентификатором "bufferSize" на строку, указывающую количество байтов, в настоящее время буферизованных в RTCDataChannel.
const dc = peerConnection.createDataChannel("File Transfer");
// …
function showBufferedAmount(channel) {
const el = document.getElementById("bufferSize");
el.innerText = `${channel.bufferedAmount} bytes`;
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в IOS | Samsung Internet | WebView Android | |
bufferedAmount |
24 | 79 | 22 | 15 | 11 | 25 | 24 | 14 | 11 | 1.5 | 4.4 |
См. также
© 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/RTCDataChannel/bufferedAmount