我有一个关于ServiceWorkers的问题。我知道这些工作人员可能会被用户代理终止。这样终止的ServiceWorker是否仍能接收推送通知并唤醒它们?
如果没有,是否有关于服务通常允许运行多长时间的信息?我的目标是桌面上的Chrome以及Chrome。
我很好奇我对工人的依赖程度,以及我能在我的应用程序中集成他们多少。
编辑:我真正没有想到的是:如果我转到这个例子并手动停止服务工作人员(应该等于通过用户代理终止),然后提交一个推送通知,服务工作人员就会恢复工作。
因此,我假设推送通知可以唤醒终止的服务工作人员。有什么限制吗?
发布于 2016-08-31 20:24:55
终止的服务工作人员仍然能够处理push事件。当浏览器检测到来自Web push服务器的传入推送通知(例如,Google消息传递)时,它将启动适当的服务工作人员。传入的推送消息包括注册信息,它允许浏览器确定要启动哪个特定的服务工作人员。
浏览器要从Web push服务器接收传入的推送通知,需要满足一些要求。
在桌面操作系统上,实际的浏览器进程需要运行。例如,如果你是OS X用户上的Chrome,并且退出Chrome,那么在重新启动Chrome之前,您不会收到任何推送通知。(在这一点上,一群人可能会同时涌入。)
在Android上,与Web Push服务器的连接是通过操作系统处理的,Chrome (我相信Firefox)并不需要“运行”才能处理传入的通知并启动正确的服务工作人员。
https://stackoverflow.com/questions/39255073
复制相似问题