SharedWorkerGlobalScope: connect event

The connect event is fired in shared workers at their SharedWorkerGlobalScope when a new client connects.

Interface MessageEvent
Bubbles No
Cancelable No
Default Action None
Event handler property SharedWorkerGlobalScope.onconnect

Examples

This example shows a shared worker file — when a connection to the worker occurs from a main thread via a MessagePort, the onconnect event handler fires. The event object is a MessageEvent.

The connecting port can be referenced through the event object's ports parameter; this reference can have an onmessage handler attached to it to handle messages coming in through the port, and its postMessage() method can be used to send messages back to the main thread using the 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();
}

For a complete running example, see our Basic shared worker example (run shared worker.)

Note: The data property of the event object used to be null in Firefox. As of version 65 it is now initialized to an empty string, as per spec (bug 1508824).

addEventListener equivalent

You could also set up an event handler using the addEventListener() method:

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

});

Specifications

Specification Status
HTML Living Standard
The definition of 'connect event' in that specification.
Living Standard

Browser compatibility

No compatibility data found. Please contribute data for "api.SharedWorkerGlobalScope.connect_event" (depth: 1) to the MDN compatibility data repository.

See also

Document Tags and Contributors

Contributors to this page: chrisdavidmills, mdnwebdocs-bot, mfluehr, Claas
Last updated by: chrisdavidmills,