通过signalR在asp.net app和serviceworker之间进行通信?

时间:2016-02-17 16:51:37

标签: asp.net-mvc signalr signalr.client service-worker

我是服务工作者的新手,我想知道如何将我的服务工作者连接到我的asp.net应用程序。我的js客户端已经与服务工作者通信,并且能够显示通知。 但是,我已经看到一些网站(例如facebook)发送通知,即使浏览器的标签没有打开(非活动,未打开)。我使用signalR与服务器通信我的应用程序。是否可以将服务人员与服务器进行通信?如果我没有错,它需要将signalR代码添加到服务工作者,但我不认为这是可能的。我已经看到谷歌有另一种沟通方式,Google Cloud Communication

我不能使用它,所以我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:4)

要使用离线通知(即您的浏览器已打开但您的页面未打开),浏览器本身需要知道它可以响应的消息服务,以及让它知道唤醒您的消息服务工作者并给它一个通知。这些服务被硬编码到浏览器中。在Chrome的情况下,该服务是GCM。我相信Firefox正在推出自己的产品。您无法通过其中一种消息传递服务从服务器中唤醒服务工作者。

请记住,通常您的服务人员都是睡着了。浏览器仅唤醒它以响应特定事件,并且,如果您的页面关闭,则无法从服务器触发服务工作者事件,除非浏览器提供消息服务(如GCM)。