我正在尝试在一个使用Spring MVC的项目中实现一个自动更新网格的长轮询机制。
我从客户端发送一个Ajax请求,在服务器端,我输入一个while循环,直到找到数据,然后将数据作为响应发送回来。
我需要另一种机制,当用户在应用程序中更改选项卡时(每个选项卡都有一个不同的网格,通过长轮询自动更新),停止此操作(中断循环)。每个选项卡都由不同的服务器端控制器处理)。
我想的是,我需要有一个会话范围的变量或bean,当客户端更改选项卡时发生变化,并且可以从循环内部访问,因此它可以在更改时中断。当我尝试使用Spring MVC bean作用域时,我注意到bean的属性在两个不同的会话(即HttpSession)中常见。我用同一台机器上的不同用户登录进行了测试。
我试着使用,但我得到相同的结果。
关于如何使这个工作有什么想法吗?
提前感谢。
在Spring MVC 3.2(目前是一个里程碑版本)中引入了长轮询和其他异步进程。这可能值得一看,而不是试图实现自己的解决方案。
http://blog.springsource.org/2012/05/13/spring-mvc-3-2-preview-adding-long-polling-to-an-existing-web-application/