У меня есть это в моем window.js ...
const wb = new Workbox('sw.js');
wb.messageSW({type:'START'});
wb.addEventListener('message', e=>{
console.log(e);
});
... в моем sw.js, у меня есть ...
self.addEventListener('message', (e)=>{
if (e.data) {
switch(e.data.type) {
case 'START':
//do some processing here...
//...then how do I send a message to the client here so...
//...that it will be received by the wb.addEventListener('message',... in window.js?
break;
}
}
});
Я пытался отправить черезMessagePort.postMessage () в e.ports [0], но это не сработало.Я чувствую, что это что-то базовое, особенно с использованием класса Workbox, но я просто не могу заставить его работать.
Мое последнее средство - использовать BroadcastChannel (с полифилом), но я пытаюсь это сделатьво-первых, для работы может не потребоваться полифилл.