--- 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")}}