RTCDataChannel: свойство readyState
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Только для чтения RTCDataChannel свойство readyState возвращает строку, которая указывает состояние базового соединения канала передачи данных.
Значения
Строка, указывающая текущее состояние базового транспортного средства, которая может принимать одно из следующих значений:
connecting-
Пользовательский агент (браузер) находится в процессе создания базового транспортного средства; это состояние нового
RTCDataChannelпосле его создания с помощьюRTCPeerConnection.createDataChannel()на стороне узла, начавшего процесс подключения. open-
Базовое транспортное средство установлено, и данные могут передаваться в обоих направлениях. Это стандартное состояние нового
RTCDataChannel, созданного слоем WebRTC, когда удаленный узел создал канал и передал его сайту или приложению в событииdatachannel. closing-
Начался процесс закрытия базового транспортного средства. Больше невозможно добавлять новые сообщения в очередь, но ранее отправленные сообщения все ещё могут быть отправлены или получены, прежде чем произойдёт переход в состояние
closed. closed-
Базовое транспортное средство закрыто или попытка подключения не удалась.
Пример
const dataChannel = peerConnection.createDataChannel("File Transfer");
const sendQueue = [];
function sendMessage(msg) {
switch (dataChannel.readyState) {
case "connecting":
console.log(`Connection not open; queueing: ${msg}`);
sendQueue.push(msg);
break;
case "open":
sendQueue.forEach((msg) => dataChannel.send(msg));
break;
case "closing":
console.log(`Attempted to send message while closing: ${msg}`);
break;
case "closed":
console.log("Error! Attempt to send while connection closed.");
break;
}
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
readyState |
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/readyState