【发布时间】:2022-01-06 02:58:08
【问题描述】:
我一直在尝试从服务人员向客户发送消息,但如果我使用
self.clients.matchAll()
.then((clients) => {
clients.forEach(function(client) {
client.postMessage({msg: 'Hello from SW'})
})
})
即使我在浏览器中打开了一个标签,它也不会发送给任何客户端,但是如果我从 客户端 向 service worker 发送消息/p>
// 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 吗?
【问题讨论】:
标签: client service-worker