Java SpringREST应用程序中的长轮询

Java SpringREST应用程序中的长轮询,java,spring,rest,gwt,long-polling,Java,Spring,Rest,Gwt,Long Polling,我有一个应用程序,其中服务器端是SpringREST,客户端是GWT。客户端使用GWT的DataGrid显示各种不同的数据 客户端是交互式的,用户可以进行更改,并且数据及其显示网格都是相互关联的,因此当编辑一个网格上的数据时,必须对其他显示网格进行相应的更新 此外,可能同时使用多个客户端,所有客户端的显示都应保持最新 为此,我一直在考虑使用Spring的长轮询功能来使用Servlet3的异步请求 我已经设法理解了基础知识(我想),例如客户端发出请求,并且连接保持打开状态,直到有数据要发送(显示更

我有一个应用程序,其中服务器端是SpringREST,客户端是GWT。客户端使用GWT的DataGrid显示各种不同的数据

客户端是交互式的,用户可以进行更改,并且数据及其显示网格都是相互关联的,因此当编辑一个网格上的数据时,必须对其他显示网格进行相应的更新

此外,可能同时使用多个客户端,所有客户端的显示都应保持最新

为此,我一直在考虑使用Spring的长轮询功能来使用Servlet3的异步请求

我已经设法理解了基础知识(我想),例如客户端发出请求,并且连接保持打开状态,直到有数据要发送(显示更新)

一旦客户机收到响应,显示的数据就会更新,客户机会立即发出另一个请求,当发生另一个更新时,该请求会得到响应


那么,服务器如何知道请求的原始客户端是否已经收到了最新的更新呢?

GWT中有很多方法可用于推送服务 类似于GWT事件服务

为了让服务器向客户端发起请求,您需要使用
WebSockets
,以及目前仅由Chrome支持的实验性
HTML5
功能


或者,为了模拟这种交互,您可以使用rocket GWT项目在GWT中提供的
Comet(长轮询)

您考虑过使用WebSocket吗?因为这将给你一个更清晰的实现你想要做的事情。