我正在尝试在使用 Spring MVC 的项目中实现一种自动更新网格的长轮询机制。
我从客户端发送 Ajax 请求,在服务器端我进入一个 while 循环,直到找到数据,然后将数据作为响应发回。
当用户在应用程序中更改选项卡时,我需要另一种机制来停止此操作(中断循环)(每个选项卡都有一个不同的网格,通过长轮询自动更新。每个选项卡都由服务器处理-旁边有一个不同的 Controller )。
我的想法是,我需要有一个 session 范围的变量或 bean,它会在客户端更改选项卡时更改,并且可以从循环内部访问,以便它可以在更改时中断。当我尝试使用 Spring MVC beans 范围时,我注意到我在两个不同 session (即 HttpSession)中共有的 bean 属性。我通过使用同一台机器上的不同用户登录来对此进行测试。
我尝试使用 ,但结果相同。
关于如何使这项工作有任何想法吗?
提前谢谢你。
最佳答案
在 Spring MVC 3.2(目前是一个里程碑版本)中引入了长轮询和其他异步进程。它可能值得一看,而不是尝试实现您自己的解决方案。
关于java - Java 中的 Ajax 长轮询,Spring MVC - session 范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992153/