學習使用廣播頻道 API 進行一對多通訊的基礎知識
通道訊息 API 是一個很好的方式,可以從視窗發送訊息到 iframe,從視窗發送訊息到 Web Worker 等等。
廣播頻道 API 可以用於發送一對多訊息,同時與多個實體進行通訊。
你可以通過初始化一個 BroadcastChannel
物件來開始:
const channel = new BroadcastChannel('thechannel');
要在頻道上發送訊息,可以使用 postMessage()
方法:
channel.postMessage('嘿!');
訊息可以是以下任何支援的值:
- 所有的基元類型,除了符號類型
- 數組
- 物件字面量
- 字串、日期、正則表達式 物件
- Blob、
File
、FileList
物件 ArrayBuffer
、ArrayBufferView
物件- FormData 物件
- ImageData 物件
- Map 和 Set 物件
要從頻道接收訊息,可以監聽 message
事件:
channel.onmessage = (event) => {
console.log('接收到的訊息:', event.data);
};
除了發送訊息的來源外,此事件將針對所有聽眾觸發。
你可以使用以下方法關閉頻道:
channel.close();