WebRTC хорош не только для передачи аудио и видео потоков, но и для любых произвольных данных, которые у нас могут быть. Это где объект RTCDataChannel вступает в игру.
RTCDataChannel.label (только для чтения) — возвращает строку, содержащую имя канала данных.
RTCDataChannel.ordered (только для чтения) — возвращает true, если порядок доставки сообщений гарантирован, или false, если он не гарантирован.
RTCDataChannel.protocol (только для чтения) — возвращает строку, содержащую имя подпротокола, используемого для этого канала.
RTCDataChannel.id (только для чтения) — возвращает уникальный идентификатор для канала, который устанавливается при создании объекта RTCDataChannel.
RTCDataChannel.readyState (только для чтения) — возвращает перечисление RTCDataChannelState, представляющее состояние соединения. Возможные значения —
подключение — указывает, что соединение еще не активно. Это начальное состояние.
open — указывает, что соединение установлено.
закрытие — указывает на то, что соединение находится в процессе отключения. Кэшированные сообщения находятся в процессе отправки или получения, но ни одна вновь созданная задача не принимает.
закрыт — указывает на то, что соединение не может быть установлено или было отключено.
RTCDataChannel.bufferedAmount (только для чтения) — возвращает количество байтов, которые были поставлены в очередь для отправки. Это объем данных, которые еще не были отправлены через RTCDataChannel.send ().
RTCDataChannel.bufferedAmountLowThreshold — возвращает количество байтов, при котором RTCDataChannel.bufferedAmount считается низким. Когда значение RTCDataChannel.bufferedAmount уменьшается ниже этого порога, вызывается событие bufferedamountlow.
RTCDataChannel.binaryType — возвращает тип двоичных данных, передаваемых соединением. Может быть «blob» или «arraybuffer».
RTCDataChannel.maxPacketLifeType (только для чтения) — возвращает беззнаковое короткое замыкание, указывающее длину в миллисекундах окна, когда обмен сообщениями происходит в ненадежном режиме.
RTCDataChannel.maxRetransmits (только для чтения) — возвращает короткое число без знака, указывающее максимальное количество раз, когда канал будет повторно передавать данные, если они не доставлены.
RTCDataChannel.negotiated (только для чтения) — возвращает логическое значение, указывающее, был ли канал согласован агентом пользователя или приложением.
RTCDataChannel.reliable (только для чтения) — возвращает логическое значение, указывающее, что соединение может отправлять сообщения в ненадежном режиме.
RTCDataChannel.stream (только для чтения) — синоним RTCDataChannel.id
RTCDataChannel.onopen — этот обработчик события вызывается при запуске события open. Это событие отправляется, когда соединение для передачи данных установлено.
RTCDataChannel.onmessage — этот обработчик события вызывается при возникновении события сообщения. Событие отправляется, когда сообщение доступно на канале данных.
RTCDataChannel.onbufferedamountlow — этот обработчик события вызывается при возникновении события bufferedamoutlow. Это событие отправляется, когда RTCDataChannel.bufferedAmount уменьшается ниже свойства RTCDataChannel.bufferedAmountLowThreshold.
RTCDataChannel.onclose — этот обработчик события вызывается при запуске события close. Это событие отправляется, когда соединение для передачи данных было закрыто.
RTCDataChannel.onerror — этот обработчик события вызывается при возникновении события ошибки. Это событие отправляется при обнаружении ошибки.
RTCDataChannel.close () — Закрывает канал данных.
RTCDataChannel.send () — отправляет данные в параметре по каналу. Данные могут быть BLOB-объектами, строками, ArrayBuffer или ArrayBufferView.