Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 服务器-客户端事件推送?_Spring_Spring Mvc - Fatal编程技术网

Spring 服务器-客户端事件推送?

Spring 服务器-客户端事件推送?,spring,spring-mvc,Spring,Spring Mvc,我在一个项目中工作,我有一个仪表板页面。我的要求是将一些消息推送到当前与服务器连接并在其系统中打开仪表板页面的所有客户端(无任何客户端请求,基于服务器本身发生的某些事件)。使用Spring3.2.x和Hibernate3。我将如何使用Spring达到和超过要求 注意:我不能进行轮询,因为任何毫秒都可能发生事件 如果您在Spring 3上,不能/不想使用WebSocket(这是将数据快速推送到客户端的最佳方式),我建议您使用长轮询 长轮询与轮询类似,但区别在于,在第一次轮询调用中,HTTP请求不会

我在一个项目中工作,我有一个仪表板页面。我的要求是将一些消息推送到当前与服务器连接并在其系统中打开仪表板页面的所有客户端(无任何客户端请求,基于服务器本身发生的某些事件)。使用Spring3.2.x和Hibernate3。我将如何使用Spring达到和超过要求


注意:我不能进行轮询,因为任何毫秒都可能发生事件

如果您在Spring 3上,不能/不想使用WebSocket(这是将数据快速推送到客户端的最佳方式),我建议您使用长轮询

长轮询与轮询类似,但区别在于,在第一次轮询调用中,HTTP请求不会立即完成

这意味着,当客户端连接到您的仪表板时,连接将保持打开状态,直到出现要报告的事件。事件发生时,会立即报告,这意味着您避免了传统轮询中的延迟

在Spring中很容易实现长轮询,只需使用内置类
DeferredResult

您可以在Spring页面上看到本教程,该页面非常完整。


此解决方案与Spring3.2兼容。

Hibernate与此无关。您正在寻找web套接字。Spring4为它们提供了全面的支持。是时候升级了。春天3号很老了,冬眠3号也很老了。也就是说,我不明白你为什么不能使用投票。一个事件可以在任何时候发生这一事实是无关紧要的。重要的是每秒可以推送多少条消息,以及您准备等待多长时间才能看到新消息。@JB Nizet:谢谢您的回复。服务器端的事件可以在任何时间发生,可能以毫秒、秒、小时或天为单位。那么现在去投票有关系吗?