通过signalR在asp.net应用程序和服务人员之间进行通信?

moa*_*rra 5 asp.net-mvc signalr signalr.client service-worker

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

我不能使用它,那么关于如何解决此问题的任何想法?

Bre*_*hie 6

为了利用离线通知(即,浏览器处于打开状态,但页面未打开),浏览器本身需要知道可以响应的消息传递服务,并使其唤醒服务工作人员,并给它一个通知。这些服务被硬编码到浏览器中。在Chrome的情况下,该服务为GCM。而且我相信Firefox正在推出自己的产品。如果不通过这些消息传递服务之一,就无法从服务器中唤醒服务工作者。

请记住,通常您的服务人员在睡觉。浏览器仅在响应特定事件时将其唤醒,并且,如果您的页面关闭,则无法从服务器触发服务工作者事件,除非浏览器提供了诸如GCM之类的消息服务。

  • 这是 Firefox 中使用的推送服务:https://github.com/mozilla-services/autopush (2认同)