Spec-Zone.ru › Web APIs

RTCDataChannel

Базовая Широко доступна *

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Интерфейс RTCDataChannel представляет собой сетевой канал, который можно использовать для двусторонней передачи произвольных данных между узлами. Каждый канал данных связан с RTCPeerConnection, и каждое подключение к узлу может иметь до теоретического максимума 65 534 каналов данных (фактический предел может отличаться от браузера к браузеру).

Чтобы создать канал данных и попросить удалённый узел присоединиться к вам, вызовите метод RTCPeerConnection createDataChannel(). Узел, приглашённый к обмену данными, получит событие datachannel (с типом RTCDataChannelEvent), чтобы узнать, что канал данных добавлен к подключению.

RTCDataChannel — это передаваемый объект.

EventTarget RTCDataChannel

Свойства экземпляра

Также наследует свойства от EventTarget.

binaryType

Строка, определяющая тип объекта, который должен использоваться для представления двоичных данных, полученных по RTCDataChannel. Значения совпадают с разрешёнными для свойства WebSocket.binaryType: blob при использовании объектов Blob или arraybuffer при использовании объектов ArrayBuffer. По умолчанию arraybuffer.

bufferedAmount Только для чтения

Возвращает количество байтов данных, в настоящее время находящихся в очереди для отправки по каналу данных.

bufferedAmountLowThreshold

Указывает количество байтов буферизованных исходящих данных, которые считаются «низкими». Значение по умолчанию — 0.

id Только для чтения

Возвращает идентификационный номер (от 0 до 65 534), уникально идентифицирующий RTCDataChannel.

label Только для чтения

Возвращает строку, содержащую имя, описывающее канал данных. Эти метки не обязаны быть уникальными.

maxPacketLifeTime Только для чтения

Возвращает количество времени в миллисекундах, которое браузеру разрешается тратить на попытку передачи сообщения, как задано при создании канала данных, или null.

maxRetransmits Только для чтения

Возвращает максимальное количество попыток повторной передачи сообщения браузером до отказа, как задано при создании канала данных, или null, что указывает на отсутствие максимального значения.

negotiated Только для чтения

Указывает, был ли обмен подключением канала данных (true) веб-приложением или слоем WebRTC (false). По умолчанию false.

ordered Только для чтения

Указывает, гарантирует ли канал данных доставку сообщений в правильном порядке; по умолчанию true, что указывает на то, что канал данных упорядочен.

protocol Только для чтения

Возвращает строку, содержащую имя используемого подпротокола. Если при создании канала данных протокол не был указан, то значение этого свойства — пустая строка ("").

readyState Только для чтения

Возвращает строку, которая указывает состояние подлежащего соединения канала данных. Она может иметь одно из следующих значений: connecting, open, closing, или closed.

Устаревшие свойства

reliable Только для чтения Устаревшее Нестандартное

Указывает, является ли канал данных надёжным.

Методы экземпляра

Также наследует методы от EventTarget.

close()

Закрывает RTCDataChannel. Любой из узлов может вызвать этот метод, чтобы инициировать закрытие канала.

send()

Отправляет данные по каналу данных удалённому узлу.

События

bufferedamountlow

Отправляется, когда количество байтов данных в исходящем буфере данных падает ниже значения, указанного свойством bufferedAmountLowThreshold.

close

Отправляется, когда подлежащий транспорт данных закрывается.

closing

Отправляется, когда подлежащий транспорт данных собирается начать закрытие.

error

Отправляется, когда в канале данных возникает ошибка.

message

Отправляется, когда сообщение получено от удалённого узла. Содержимое сообщения можно найти в свойстве события data.

open

Отправляется, когда канал данных открывается впервые или когда подлежащее соединение существующего канала данных вновь открывается.

Формат данных

Подлежащий формат данных определяется спецификацией IEEE SDP Offer/Answer Procedures for SCTP over DTLS Transport(RFC 8841). Текущий формат определяет свой протокол как "UDP/DTLS/SCTP" (UDP, несущий DTLS, несущий SCTP) или "TCP/DTLS/SCTP" (TCP, несущий DTLS, несущий SCTP). Более старые браузеры могут указывать только "DTLS/SCTP".

Пример

const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");

dc.onmessage = (event) => {
  console.log(`received: ${event.data}`);
};

dc.onopen = () => {
  console.log("datachannel open");
};

dc.onclose = () => {
  console.log("datachannel close");
};

Спецификации

Спецификация
WebRTC: Режим реального времени в браузерах
# rtcdatachannel

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
RTCDataChannel 24 79 22 15 11 25 24 14 11 1.5 4.4
binaryType 24 79 22 15 11 25 24 14 11 1.5 4.4
bufferedAmount 24 79 22 15 11 25 24 14 11 1.5 4.4
bufferedAmountLowThreshold 46 79 44 33 11 46 44 33 11 5.0 46
bufferedamountlow_event
57Значение по умолчанию для rtcpMuxPolicy — require.
79Значение по умолчанию для rtcpMuxPolicy — require.
44
44Значение по умолчанию для rtcpMuxPolicy — require.
11
57Значение по умолчанию для rtcpMuxPolicy — require.
44
43Значение по умолчанию для rtcpMuxPolicy — require.
11
7.0Значение по умолчанию для rtcpMuxPolicy — require.
57Значение по умолчанию для rtcpMuxPolicy — require.
close 24 79 22 15 11 25 24 14 11 1.5 4.4
close_event 24 79 22 15 11 25 24 14 11 1.5 4.4
closing_event 81 81 Нет 68 15.4 81 Нет 58 15.4 13.0 81
error_event 24 79 22 15 11 25 24 14 11 1.5 4.4
id 30 79 22 17 11 30 24 18 11 2.0 4.4
label 24 79 22 15 11 25 24 14 11 1.5 4.4
maxPacketLifeTime 56 79 62 43 11 56 62 43 11 6.0 56
maxRetransmits 30 79 62 17 11 30 62 18 11 2.0 4.4
message_event 24 79 22 15 11 25 24 14 11 1.5 4.4
negotiated 30 79 68 17 11 30 68 18 11 2.0 4.4
open_event 24 79 22 15 11 25 24 14 11 1.5 4.4
ordered 30 79 22 17 11 30 24 18 11 2.0 4.4
priority Нет Нет Нет Нет 15 Нет Нет Нет 15 Нет Нет
protocol 30 79 22 17 11 30 24 18 11 2.0 4.4
readyState 24 79 22 15 11 25 24 14 11 1.5 4.4
reliable 24 79 22 15 Нет 25 24 14 Нет 1.5 4.4
sctp_sdp_21 58 79 63 45 Нет 58 63 43 Нет 7.0 58
send 24 79 22 15 11 25 24 14 11 1.5 4.4
transferable 130 130 Нет 115 15 130 Нет 86 15 Нет 130

См. также

  • WebRTC API

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API