Spec-Zone.ru › Web APIs

RTCDataChannel: событие message

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

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

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

Событие WebRTC message отправляется обработчику события onmessage на объекте RTCDataChannel, когда от удалённого узла получено сообщение.

Примечание: Событие message использует в качестве типа объекта события интерфейс MessageEvent, определённый спецификацией HTML.

Это событие нельзя отменить и оно не распространяется.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.

addEventListener("message", (event) => {});

onmessage = (event) => {};

Тип события

A MessageEvent. Наследует от Event.

Событие MessageEvent

Свойства события

Также наследует свойства от родительского интерфейса, Event.

MessageEvent.data Только для чтения

Данные, отправленные отправителем сообщения.

MessageEvent.origin Только для чтения

Строка, представляющая происхождение отправителя сообщения.

MessageEvent.lastEventId Только для чтения

Строка, представляющая уникальный идентификатор события.

MessageEvent.source Только для чтения

Ссылка на отправителя сообщения, один из WindowProxy, MessagePort или ServiceWorker.

MessageEvent.ports Только для чтения

Массив объектов MessagePort, представляющих порты, связанные с каналом, через который отправляется сообщение (где это уместно, например, в сообщении канала или при отправке сообщения в общий рабочий процесс).

Примеры

Для данного RTCDataChannel, dc, созданного для соединения с узлом-партнёром с помощью метода createDataChannel(), этот код настраивает обработчик входящих сообщений и обрабатывает их, добавляя данные, содержащиеся в сообщении, в текущий документ в виде нового элемента <p> (абзаца).

dc.addEventListener(
  "message",
  (event) => {
    let newParagraph = document.createElement("p");
    let textNode = document.createTextNode(event.data);
    newParagraph.appendChild(textNode);

    document.body.appendChild(newParagraph);
  },
  false,
);

Сначала мы создаём новый элемент абзаца и добавляем данные сообщения в него как новый узел текста. Затем мы добавляем новый абзац в конец тела документа.

Вы также можете использовать свойство обработчика события RTCDataChannel объекта onmessage для задания обработчика события:

dc.onmessage = (event) => {
  let newParagraph = document.createElement("p");
  let textNode = document.createTextNode(event.data);
  newParagraph.appendChild(textNode);

  document.body.appendChild(newParagraph);
};

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

Спецификация
WebRTC: Реальное общение в браузерах
# event-datachannel-message
WebRTC: Реальное общение в браузерах
# dom-rtcdatachannel-onmessage

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
message_event 24 79 22 15 11 25 24 14 11 1.5 4.4

См. также

  • API WebRTC
  • Пример RTCDataChannel
  • Связанные события: open, close и error
  • RTCDataChannel.send()

© 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/message_event

Spec-Zone.ru

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