2016-11-29 62 views
1

在我的AngularJS应用程序中检查通知是否有推荐策略?通知检查策略

通过'通知'我正在谈论消息警报,当他们登录到应用程序时显示给用户。

我的计划是通知未读通知的用户在应用程序的的NavBar如下图所示:

NavBar notifications

我的应用我的RESTful API(使用Node.js的,快递,MongoDB的书面)通信,所以我预计新的通知将写入MongoDB集合,并提供通知用户的详细信息。

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

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

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

回答

1

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

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

希望这对你有用。

+0

非常棒,谢谢@Jorge。套接字看起来正是我所需要的,我一直在阅读关于socket.io的文章,它看起来很理想。非常感谢。 – Mook5ter