我们如何在asp.net mvc-6核心内部实现“Bell通知”

问题描述 投票:1回答:1

我正在开发一个asp.net核心Web应用程序,我们的系统有很多功能可以将项目分配给注册用户,我希望通过实现类似Bell的通知(由很多社交媒体网站),如下: -

enter image description here

现在在这个阶段,我试图了解这些通知在幕后如何工作,因为在我们检查通知后,我们将不会获得任何待处理的项目。所以根据我的理解,它的工作原理如下: -

  1. 我需要在我的页面中有一个javascript,它将检查我们的数据库中所有分配给用户的通知+之前没有读过的通知。
  2. 然后显示如上所示的数字。
  3. 如果用户点击贝尔检查待处理的项目>>发布请求应该发送到我们的后端,更新这些待用项目,他们已经被用户阅读?

我不确定这些通知是否以这种方式工作?是否有任何教程描述我们如何能够获得类似贝尔的实时通知?

c# asp.net-mvc asp.net-core push-notification signalr
1个回答
3
投票

你的问题太广泛而无法合理回答,但一般来说:

  • 如果您对它只是更新页面刷新/更改,那么您根本不需要JavaScript。例如,如果这是您的网站布局的一部分,那么它将加载到每个页面上。当用户在站点周围导航时,每当用户请求新页面时,铃声将基于当前的通知计数进行更新。但是,如果他们长时间保持在同一页面上,他们就不会知道任何进一步的新通知。但这不一定是个问题。许多网站的行为都是这样的。
  • 如果您确实需要立即更新,那么您将需要使用SignalR(websockets)。在服务器端,您将创建一个集线器和客户端,您将从此集线器(JavaScript)订阅特定的消息类型。当发生需要通知用户的事件时,将通过集线器发送该类型的新消息,该消息将立即发送到订阅的客户端。然后将调用客户端订阅回调,允许您执行诸如动态更新通知计数(更多JavaScript)之类的操作。
  • 无论您选择哪种方法,都可以通过为此服务器端创建视图组件来获得最佳服务。这将允许您封装查询数据库的逻辑以获取通知和一起显示铃声,然后简单地将其放入您的布局中。
  • 如果有一个客户端(即立即更新),你可能也想在那里使用某种组件(通过Vue.js,React,Angular等 - 每个都有自己的“组件”) 。这将允许您在一个容易重复使用的容器中类似地封装所有逻辑。
© www.soinside.com 2019 - 2024. All rights reserved.