blob: 3475321f4a6813e808bdc969d86240b62cafd12d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
self.onmessage = function(e) {
self.clients.matchAll().then(function(clients) {
clients.forEach(function(client) {
var messageChannel = new MessageChannel();
messageChannel.port1.onmessage =
onMessageViaMessagePort.bind(null, client);
client.postMessage({port: messageChannel.port2},
[messageChannel.port2]);
});
});
};
function onMessageViaMessagePort(client, e) {
var message = e.data;
if ('value' in message) {
client.postMessage({ack: 'Acking value: ' + message.value});
} else if ('done' in message) {
client.postMessage({done: true});
}
}
|