RTCDataChannel: метод close()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Метод RTCDataChannel.close() закрывает RTCDataChannel. Любая пара участников может вызвать этот метод для инициирования закрытия канала.
Закрытие канала передачи данных не происходит мгновенно. Большая часть процесса закрытия соединения обрабатывается асинхронно; вы можете определить, когда закрытие канала завершено, наблюдая за событием close в канале передачи данных.
После вызова этого метода происходит следующая последовательность событий:
-
RTCDataChannel.readyStateустанавливается в значениеclosing. - Создаётся фоновая задача для обработки остальных шагов, и
close()возвращает управление вызывающей стороне. - Слой транспорта обрабатывает все буферизованные сообщения; слой протокола определяет, отправлять их или отбросить.
- Закрывается основная передача данных.
RTCDataChannel.readyStateсвойство устанавливается в значениеclosed.- Если транспорт был закрыт с ошибкой, получателю отправляется событие
errorсnameустановленным вNetworkError. - Отправляется событие
closeв канал.
Синтаксис
close()
Параметры
Нет.
Возвращаемое значение
Ничего (undefined).
Примеры
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
dc.close(); // We decided to close after the first received message
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
// Now negotiate the connection and so forth…
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
close |
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/close