Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 通知检查策略_Express_Angular - Fatal编程技术网

Express 通知检查策略

Express 通知检查策略,express,angular,Express,Angular,在我的AngularJS应用程序中是否有检查通知的推荐策略 通过“通知”,我指的是在用户登录应用程序时向其显示的消息警报 我的计划是在应用程序的导航栏中通知用户未读通知,如下所示: 我的应用程序与我的restFul API(使用Node.js、express、MongoDB编写)通信,因此我预计新的通知将写入MongoDB集合,其中包含通知所针对的用户的详细信息 我不确定的是,一旦用户登录,AngularJS应用程序将如何检查通知。我可以在用户每次从一个路径导航到另一个路径时调用我的API以获

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

通过“通知”,我指的是在用户登录应用程序时向其显示的消息警报

我的计划是在应用程序的导航栏中通知用户未读通知,如下所示:

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

我不确定的是,一旦用户登录,AngularJS应用程序将如何检查通知。我可以在用户每次从一个路径导航到另一个路径时调用我的API以获取未读通知,但这似乎过于简单,而且如果用户在查看页面时出现新通知,则无法工作

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


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

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

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


希望这对您有用。

太好了,谢谢@Jorge。Sockets似乎正是我所需要的,我一直在阅读socket.io,它看起来非常理想。非常感谢。