如何向所有登录用户发送通知

我在MySQL应用程序上有Spring MVC,Spring Thymeleaf,Spring Security和Hibernate。 我的任务是向所有当前登录的用户通知是否有新数据保留在他们正在查看的页面上,以便用户可以刷新并获取一组新数据。

我猜测我可以将所有登录的用户存储在ApplicationScope会话中,然后以某种方式通知他们。 但我从来没有这样做过,不确定它会是多么安全。

任何人都可以提出任何想法如何做到这一点?


您需要推/拉架构(从服务器端发起消息发送)。 你使用的Spring框架都不能做到这一点。 检查大气https://github.com/Atmosphere/atmosphere

然后,无论何时持久保存新数据(您的DAO层都可以触发此操作),只需通过Atmosphere servlet将新消息推送给所有订阅的用户。 Atmosphere使用“频道”,因此您可以为用户所在的页面使用预定义的频道名称,所有用户都将收到该讯息。 您还可以使用Spring安全保护Atmosphere servlet,因此未经身份验证的用户将无法获得通知。


基于上述评论,你可以实现一个像这样的拉式架构:

将所有事件存储在中心位置,所有会话均可访问(单例,数据库等)。确保有一个顺序ID。

存储会话中检索到的最新事件ID。 通常根据需要查询ID大于会话中存储的最新ID的事件。

希望这可以帮助。

链接地址: http://www.djcxy.com/p/68885.html

上一篇: How to send notification to all logged in users

下一篇: Implementation of Sliding Menu J. Feinstein