SharedWorkerGlobalScope: connect イベント

connect イベントは、新しいクライアントが接続したときに共有ワーカーの SharedWorkerGlobalScope に発生します。

バブリング なし
キャンセル可能 いいえ
インターフェイス MessageEvent
イベントハンドラープロパティ SharedWorkerGlobalScope.onconnect (en-US)

この例は共有ワーカーファイルを示しています。メインスレッドから MessagePort を通して Worker へのコネクションが発生したとき、 onconnect イベントハンドラーが呼び出されます。イベントオブジェクトは MessageEvent です。

接続しようとしているポート番号は、イベントオブジェクトの ports 引数で参照することができます。この参照にはポートを通じて来るメッセージを扱うために割り当てられた onmessage ハンドラーがあり、その postMessage() メソッドに Worker を使用してメインスレッドにメッセージを送り返すために使用することができます。

self.onconnect = function(e) {
    var port = e.ports[0];

    port.onmessage = function(e) {
      var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
      port.postMessage(workerResult);
    }

    port.start();
}

実行している例を完成させるには、 Basic shared worker example (共有ワーカーを実行) をご覧ください。

addEventListener による同等の処理

addEventListener() メソッドを使用してイベントハンドラーを設定することもできます。

self.addEventListener('connect', function(e) {
  var port = e.ports[0];

  port.onmessage = function(e) {
    var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
    port.postMessage(workerResult);
  }

});

仕様書

仕様書 状態
HTML Living Standard
connect event の定義
現行の標準

ブラウザーの互換性

BCD tables only load in the browser

関連情報