--- title: 'SharedWorkerGlobalScope: connect イベント' slug: Web/API/SharedWorkerGlobalScope/connect_event tags: - API - Event - Reference - SharedWorkerGlobalScope - connect - events - イベント translation_of: Web/API/SharedWorkerGlobalScope/connect_event ---
connect
イベントは、新しいクライアントが接続したときに共有ワーカーの {{domxref("SharedWorkerGlobalScope")}} に発生します。
バブリング | なし |
---|---|
キャンセル可能 | いいえ |
インターフェイス | {{DOMxRef("MessageEvent")}} |
イベントハンドラープロパティ | {{domxref("SharedWorkerGlobalScope.onconnect")}} |
この例は共有ワーカーファイルを示しています。メインスレッドから {{domxref("MessagePort")}} を通して Worker へのコネクションが発生したとき、 onconnect
イベントハンドラーが呼び出されます。イベントオブジェクトは {{domxref("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 (共有ワーカーを実行) をご覧ください。
{{domxref("EventTarget/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); } });
仕様書 | 状態 |
---|---|
{{SpecName('HTML WHATWG', "indices.html#event-workerglobalscope-connect", "connect event")}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.SharedWorkerGlobalScope.connect_event")}}