RTCDataChannel:message 事件
当从远程对等方接收到消息时,WebRTC message 事件会发送到 RTCDataChannel 对象上的 onmessage 事件处理程序。
注意: message 事件使用 HTML 规范定义的 MessageEvent 接口作为其事件对象类型。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("message", (event) => { })
onmessage = (event) => { }
事件类型
一个 MessageEvent。继承自 Event。
事件属性
还继承了其父接口 Event 的属性。
MessageEvent.data只读-
由消息发送者发送的数据。
MessageEvent.origin只读-
一个字符串,表示消息发送者的源。
MessageEvent.lastEventId只读-
一个字符串,表示事件的唯一 ID。
MessageEvent.source只读-
指向消息的发射器,它是 WindowProxy、
MessagePort或ServiceWorker之一。 MessageEvent.ports只读-
一个
MessagePort对象数组,表示消息发送通道(如果适用,例如在通道消息传递或向共享工作者发送消息时)关联的端口。
示例
对于使用其 createDataChannel() 方法创建的对等连接,给定的 RTCDataChannel dc,此代码设置了传入消息的处理程序,并通过将消息中包含的数据添加为新的 <p>(段落)元素来处理它们。
js
dc.addEventListener("message", (event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
});
我们首先创建新的段落元素,并将消息数据添加为新的文本节点。然后,我们将新的段落追加到文档正文的末尾。
您也可以使用 RTCDataChannel 对象的 onmessage 事件处理程序属性来设置事件处理程序。
js
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 |
浏览器兼容性
加载中…