我有一个 Spring MVC、Spring Thymeleaf、Spring Security 和 Hibernate on MySQL 应用程序。我的任务是通知所有当前登录的用户是否为他们正在查看的页面保留了新数据,以便用户可以刷新并获取一组新数据。
我猜我可以将所有登录的用户存储在一个 ApplicationScope session 中,然后以某种方式通知他们。但我以前从未这样做过,也不确定它的安全性。
任何人都可以就如何做到这一点提出任何想法吗?
最佳答案
您需要推/拉架构(以启动从服务器端发送消息)。您使用的任何 Spring 框架都无法做到这一点。查看氛围https://github.com/Atmosphere/atmosphere
然后,无论何时持久化新数据(您的 DAO 层可以触发它),您都可以通过 Atmosphere servlet 将新消息推送给所有订阅用户。 Atmosphere 使用“ channel ”,因此您可以为用户所在的页面使用预定义的 channel 名称,所有用户都会收到消息。您还可以使用 Spring Security 保护 Atmosphere servlet,这样未经身份验证的用户将无法收到通知。
关于java - 如何向所有登录用户发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620758/