通知检查策略

时间:2016-11-29 13:48:20

标签: express angular

是否有建议的策略来检查我的AngularJS应用程序中的通知?

通过'通知'我正在谈论在用户登录应用程序时要向用户显示的消息警报。

我的计划是在应用的NavBar中通知用户未读通知,如下所示:

NavBar notifications

我的应用程序与我的restFul API进行通信(使用Node.js,express,MongoDB编写),因此我预计新的通知将被写入MongoDB集合,其中包含通知所针对的用户的详细信息。

我不确定的是AngularJS应用程序在用户登录后如何检查通知。每次用户从一个路径导航到另一个路径时,我都可以调用我的API查看未读通知,但这看起来很简单,如果在用户查看页面时发生新通知,则无法使用。

另一种方式是某种计时器系统,例如每30秒检查一次。但是,当没有任何针对用户的新通知时,这将导致对我的API进行不必要的轮询。

所以,想知道是否有推荐的策略。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

轮询是一种解决方案,但效率非常低。您的问题的解决方案是websockets。 Websockets是一种在客户端和服务器之间提供全双工双向通信的技术。因此,您可以将消息从服​​务器发送到已连接的客户端。您的服务器维护一组连接的客户端,您只需知道向其发送消息所需的ID。

对于您的堆栈,我遇到的最佳解决方案是Socket.io http://socket.io 它也有很酷的功能。例如,您可以观察"模型,因此,如果数据库中的模型更改(例如,对用户配置文件进行了更新),则可以触发事件并自动向客户端发送消息。此客户端获取并处理通知并执行某些操作,例如在警报图标上添加徽章。

希望这对你有用。