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