Channel Messaging API
Channel Messaging APIは様々な終端にポートの双方向チャネルを通してそのほかの間のメッセージを渡すために、直接通信するために同じドキュメントにつけた異なるブラウジングコンテキストを起動するスクリプトを二つに分ける。
概念と使用法
メッセージチャネルはMessageChannelコンストラクタを使って作られる。一度作られると、チャネルの二つのポートはMessageChannel.port1とMessageChannel.port2(MessagePortオブジェクト)プロパティを通してアクセスできる。チャネルを作成したアプリはport1を使用し、ポートの反対側のアプリはport2を使用する。port2にメッセージを送信し、window.postMessageと2つの引数を使用して、ポートを他のブラウジングコンテキストに転送する。
これらの移送可能なオブジェクトが移動されたとき、前のコンテキスト上の'neutered'である。たとえば、ポートが送信されると、元のコンテキストでは使用できなくなる。
他のブラウジングコンテキストはMessagePort.onmessageを使ってメッセージをリストしてイベントのデータ属性を使ってメッセ―ジのコンテンツをつかむことができる。MessagePort.postMessageを使ってオリジナルのドキュメントを戻すメッセージを送ることで応答することができる。
チャネルをおろしてメッセージを送ることを止めたいとき、ポートを閉じるためにMessagePort.closeを呼び出すことができる。