对于 Web 服务应用程序,我希望服务器能够向客户端通知某些事件。当客户端启动时,他会调用 WS 方法之一来获取所需的一些信息。然后,存储该信息的服务器不断监听这些信息的变化,如果有变化,它会通知相关的客户端。
我不知道网络服务是否可以很好地解决我的问题?我不知道 TCP 连接如何工作,因为服务器可能会在很长一段时间后通知客户端。
解决此类问题的最佳架构是什么?
谢谢
<小时/>编辑:我看过一些建议使用 Comet 的讨论,但如果您认为有更简单、更方便的解决方案,请告诉我。由于我是从头开始这个项目,所以我没有任何限制。
我还可以使用轮询模型,其中客户端定期轮询服务器以获取所需的信息,但随后我需要考虑此模型可能在服务器上创建的负载。我不知道当客户端很多时,Web 服务是否可以支持这样的负载。
我还研究了 Servlet 3.0 提供的异步功能,但我不知道它如何解决我的问题。
最佳答案
没有轮询:套接字
对于轮询和网络服务:你应该使用 etag (html)。
当客户端轮询时,他会发送带有 etag 的请求。 Web 服务响应 200(正常)和数据或 304(未修改)。 304 没有正文 => 流量较少
关于java - Web 服务和服务器->客户端通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034343/