≪ Today I learned. RSS購読
公開日
タグ
JavaScript
著者
ダーシノ(@bc_rikko)

Broadcast Channel APIで閲覧コンテキスト間で相互通信を行う

Broadcast Channel APIを使うことで、同一デバイス、同一オリジンにおいて任意のチャンネル名を指定し閲覧コンテキスト間(※)で相互通信ができる。

※閲覧コンテキストとは、ウィンドウ、タブ、フレーム、iframeのこと

たとえば、ユーザーが別タブで別アカウントでログインしたことを検知してメッセージを表示するなどができる。

Broadcast Channel APIの使い方

const bc = new BroadcastChannel('my-channel')

// メッセージ送信
bc.postMessage(...)

// メッセージ受信
bc.onmessage = ev => console.log(ev.data)

// 切断
bc.close()

window.postMessage()との違い

window.postMessage()という、Windowオブジェクト間でやりとりできるメソッドもあるが、Broadcast Channel APIはそれをさらに安全に使いやすくしたAPIと言える。