【问题标题】:Communication between asp.net app and a serviceworker, via signalR?asp.net 应用程序和 serviceworker 之间的通信,通过 signalR?
【发布时间】:2016-02-17 16:51:36
【问题描述】:

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

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

【问题讨论】:

  • 我不认为 signalR 可以在工作人员身上工作......它肯定会与网络工作人员斗争。 SignalR v3 将于今年迎来新的未来
  • 正确,套接字不通过 service worker。服务工作者仅“捕获” https 请求,而不是套接字或其他协议。你真的想要一个推送服务来触发这样的通知。用户必须选择加入这些 BTW。

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


【解决方案1】:

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

请记住,您的服务人员通常处于睡眠状态。浏览器只会在响应特定事件时将其唤醒,如果您的页面已关闭,则无法从您的服务器触发 Service Worker 事件,除非浏览器提供 GCM 等消息传递服务。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多