RTCDataChannel: событие message
Базовая Широко доступная
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Событие WebRTC message отправляется обработчику события onmessage на объекте RTCDataChannel, когда от удалённого узла получено сообщение.
Примечание: Событие message использует в качестве типа объекта события интерфейс MessageEvent, определённый спецификацией HTML.
Это событие нельзя отменить и оно не распространяется.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.
addEventListener("message", (event) => {});
onmessage = (event) => {};
Тип события
A MessageEvent. Наследует от Event.
Свойства события
Также наследует свойства от родительского интерфейса, 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