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

Dev*_*ev2 7 java spring hibernate spring-mvc spring-security

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

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

任何人都可以建议如何做到这一点?

roo*_*kit 3

您需要推/拉架构(以启动从服务器端发送消息)。您使用的 Spring 框架都无法做到这一点。查看氛围https://github.com/Atmosphere/atmosphere

然后,只要新数据被持久化(您的 DAO 层可以触发此操作),您就可以通过 Atmosphere servlet 将新消息推送给所有订阅用户。Atmosphere 使用“频道”,因此您可以使用用户所在页面的预定义频道名称,并且所有用户都会收到消息。您还可以使用 Spring 安全性来保护 Atmosphere servlet,这样未经身份验证的用户将无法收到通知。