SharedWorkerGlobalScope: connect イベント

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

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

この例は共有ワーカーファイルを示しています。メインスレッドから 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

関連情報