asp.net-mvc - asp.net 应用程序和 serviceworker 之间通过 signalR 进行通信?

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

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

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

最佳答案

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

请记住,通常您的 Service Worker 都在 sleep 。浏览器只会在响应特定事件时唤醒它,并且,如果您的页面关闭,则无法从服务器触发 Service Worker 事件,除非浏览器提供消息传递服务(例如 GCM)。

关于asp.net-mvc - asp.net 应用程序和 serviceworker 之间通过 signalR 进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462848/

相关文章:

asp.net-mvc - 使用asp web api发布嵌套资源

javascript - 如何从数据库中检索二进制图像以通过 Ajax 调用查看

asp.net-core - Blazor 服务器和 SignalR 以及 Azure AD

SignalR "Error during negotiation request"

javascript - 从 Python 代码使用 SignalR 服务器

javascript - 在父选项卡(页面)上显示叠加层,直到打开其所有子选项卡(页面)

asp.net-mvc - ASP.NET 网站管理工具未知错误 ASP.NET 4 VS 2010

asp.net - 使用 SignalR 进行表单例份验证

asp.net-web-api - Signalr 触发多个 OnDisconnect 调用并且连接也没有断开

javascript - 检索计数语句并通过 signalR 发送给客户端