我的Chrome扩展程序的背景页面设置为事件页面,即,大多数情况下,除非某些注册的事件侦听器将其唤醒,否则它会处于睡眠状态。
我希望能够偶尔将邮件从服务器发送到扩展程序的单个用户的事件页面。它们不一定要显示为桌面通知,而是由后台脚本决定如何处理任何传入消息。例如,它很可能在本地存储中存储一些信息。如果在发送消息时用户客户端处于脱机状态,则理想的情况是,一旦恢复联机,则将其传递。
我想避免每次后台脚本唤醒时都定期轮询服务器,尽管这将是一个明显的解决方案。
因此,我的问题是,是否有可能在我的事件页面中注册一种特殊类型的事件,以便一旦服务器收到传入消息,它就会唤醒并触发某些功能。理想情况下,服务器消息不是向所有用户通用广播,而是针对特定用户的定向消息。
我有什么选择?
我读到了有关服务工作者及其Push API的信息,但似乎它们只是慢慢地推广到Chrome扩展程序中。我不确定他们是否准备好浏览器的稳定版本,也没有找到有关它们如何与扩展一起使用的任何文档。 我还阅读了一些有关Google Cloud Messaging的信息,但不推荐使用它,而推荐使用一种新的昂贵的Firebase解决方案。