java - Web 服务和服务器->客户端通知

标签 java web-services asynchronous

对于 Web 服务应用程序,我希望服务器能够向客户端通知某些事件。当客户端启动时,他会调用 WS 方法之一来获取所需的一些信息。然后,存储该信息的服务器不断监听这些信息的变化,如果有变化,它会通知相关的客户端。

我不知道网络服务是否可以很好地解决我的问题?我不知道 TCP 连接如何工作,因为服务器可能会在很长一段时间后通知客户端。

解决此类问题的最佳架构是什么?

谢谢

<小时/>

编辑:我看过一些建议使用 Comet 的讨论,但如果您认为有更简单、更方便的解决方案,请告诉我。由于我是从头开始这个项目,所以我没有任何限制。

我还可以使用轮询模型,其中客户端定期轮询服务器以获取所需的信息,但随后我需要考虑此模型可能在服务器上创建的负载。我不知道当客户端很多时,Web 服务是否可以支持这样的负载。

我还研究了 Servlet 3.0 提供的异步功能,但我不知道它如何解决我的问题。

最佳答案

没有轮询:套接字

对于轮询和网络服务:你应该使用 etag (html)。

当客户端轮询时,他会发送带有 etag 的请求。 Web 服务响应 200(正常)和数据或 304(未修改)。 304 没有正文 => 流量较少

关于java - Web 服务和服务器->客户端通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034343/

相关文章:

java - 在列表内创建不同大小的列表 - 主列表内包含子列表和子子列表

java - 使用 glReadPixels 读取纹理图像的像素数据

java - 工头找不到 $JAVA_OPTS

.net - 如何修复 Visual Studio 生成的用于处理锯齿状数组的 Web 引用代理?

C# 图表轴标签格式不正确

c++ - 如何在程序播放的同时播放声音?

java.lang.IllegalStateException : Async REST API

java - 如何使 Java String 贪婪地拆分为 lookahead?

java - (JAVA) SOAP WebService 错误对象引用未设置到对象的实例

c# - 如何将大量数据传递给网络服务