在Serviceworker中检测客户端断开连接

时间:2018-10-21 17:04:07

标签: javascript service-worker

服务工作人员中是否可以使用事件或机制来检测客户端何时断开连接,即 self.clients.matchAll()中的客户端实例之一已更改?

以一个在两个或多个打开的选项卡中运行的应用程序为例,如何通知其他选项卡其他一个选项卡已关闭?

我当前的解决方案是维护服务工作人员内部的客户映射,然后在服务工作人员的其他常用功能中运行清理功能,但是鉴于服务工作人员的共同性,如果没有实质性的性能损失,我将无法扩展此解决方案

1 个答案:

答案 0 :(得分:0)

到目前为止我发现的东西:

addEventListener('beforeunload', function (e) {
  if (!e.defaultPrevented) {
    navigator.serviceWorker.controller.postMessage("client_unloaded")
  }
})