asp.net 应用程序和 serviceworker 之间的通信,通过 signalR?

Communication between asp.net app and a serviceworker, via signalR?

我是 serviceworkers 的新手,我想知道如何将我的 serviceworker 连接到我的 asp.net 应用程序。我的 js 客户端已经与 service worker 通信,并且能够显示通知。 但是,我已经看到一些网站(例如 facebook)即使浏览器的选项卡未打开(不是不活动,未打开)也会发送通知。我使用 signalR 将我的应用程序与服务器通信。 serviceworker 是否可以与服务器进行通信?如果我没记错的话,需要向 serviceworker 添加 signalR 代码,但我认为这是不可能的。我看到 google 有另一种通信方式,Google Cloud Communication

我不能使用它,所以我有什么办法可以解决这个问题吗?

要使用离线通知(即,您的浏览器已打开但您的页面未打开),浏览器本身需要知道它可以响应的消息服务,以及它会唤醒它启动你的服务人员并给它一个通知。这些服务被硬编码到浏览器中。在 Chrome 的例子中,服务是 GCM。而且我相信 Firefox 正在推出自己的东西。如果不通过这些消息传递服务之一,您无法自己从服务器唤醒服务工作者。

请记住,通常您的 service worker 处于睡眠状态。浏览器只会在响应特定事件时将其唤醒,并且,如果您的页面已关闭,则无法从您的服务器触发服务工作者事件,除非浏览器提供消息服务(例如 GCM)。