我的应用程序中有一个投递报告页面。我的客户总是有兴趣知道货物交付的最新状态。自动更新网页
我需要添加'自动刷新'功能,以便客户无需手动刷新即可获取最新状态。这个需求面临的挑战是数百个请求将开始触发服务器,而只有非常小的%会在交付状态中进行一些更新。 我对在数分钟内在我的应用程序服务器上进行数百次[未来可能会增长]无关紧要的命中感兴趣。
解决方案试图满足要求: 我使用的WebSocket,这是我非群集环境都不错,但在集群也开始Wildfly集群架构挑战失败的原因[AJP不会得到升级]
解决方案我打算实施: 我可以将文件中的最新传递状态推送到我的网络服务器,并让浏览器的请求使用静态文件。在这种情况下,我的应用程序服务器不需要处理所有这些不相关的请求。
问题: 有没有其他更好的解决方案来处理这个问题?
其他景点:
我使用的Ehcache来处理缓存我的应用程序。在服务器节点之间存在这些缓存对象的复制。所以这个缓存我可以使用incase需要共享服务器节点之间的一些数据。
这是一个JSF-Spring集成应用程序。
我使用Richface的a4j:websocket的push组件,它不是野蝇簇中的合适解决方案。
看来投票组件能够做一个指定的时间间隔定期请求。这又会导致应用服务器的命中太多。感谢您的评论。 – Sam
@Sam我用COMET的信息更新了答案。请检查是否有帮助 – Optional
https://en.wikipedia.org/wiki/WebSocket“在WebSocket之前,使用Comet通道可以实现端口80全双工通信;但是,Comet实现并不重要,并且由于TCP握手和HTTP头部开销,对于小型消息来说效率不高,WebSocket协议旨在解决这些问题而不影响网络的安全假设。 COMET将会是一个沉重的解决方案吗?我会对此做更多的研究。 – Sam