Я пытался отправлять сообщения клиентов из службы работника, но если я используюслужба работников общаются с клиентами
self.clients.matchAll()
.then((clients) => {
clients.forEach(function(client) {
client.postMessage({msg: 'Hello from SW'})
})
})
он не будет посылать любой клиенту, даже если у меня есть вкладка открыта в браузере, но если я посылаю сообщение от клиента к службы работника
// client
navigator.serviceWorker.controller.postMessage({title: 'Send message from client'})
и работника службы
self.addEventListener('message', function(event) {
self.clients.fetchAll()
.then((clients) => {
clients.forEach(function(client) {
client.postMessage({msg: 'Hello from SW'})
})
})
})
он может отправить сообщение и находит клиентов. что я делаю неправильно ?, вместо этого я должен использовать indexedDB?
Вы правы в отношении self.clients.matchAll, я использовал это, API канала Broadcast работает очень хорошо. Благодарю. –