【发布时间】:2014-03-15 16:40:29
【问题描述】:
例如,我有带有 cmets 的页面。每次有人添加评论时,我都希望为所有观看该页面的用户更新页面。 我可以做到,每隔几分钟使用 ajax 更新。但是有一种更聪明的方法,可能是一些 java EE 服务用于此目的?
【问题讨论】:
-
为什么你觉得通过 Ajax 发送更新有点不明智?当然,您可以在解决方案中混合一定剂量的 JMS(根据您的描述进行最佳猜测,使用主题),然后使用一些将数据传输到客户端的 Web 服务。
-
@fvu:服务器无法使用 Ajax 向浏览器发送任何内容。浏览器必须要求更新。
-
@Vovan:你可以使用 websockets,但并不是每个浏览器都支持它们,而且当前的 Java 支持很差。 Spring 4 使用 stomp 提供了不错的支持,如果不支持 websockets,它可以降级为 AJAX 长轮询。但也许您只需要使用 AJAX 定期刷新,这会消耗更多带宽和资源,但可以在任何地方工作。
-
@Vovan 一些可以帮助您制定解决方案的 JMS 相关主题是已经提到的主题、消息生命周期和持久订阅。 ActiveMQ 有 a number of features 在您描述的场景中很有帮助。
-
您可以使用PrimeFaces Push,并将您想要在用户之间共享的公共评论放入ApplicationScoped ManagedBean。然后使用 PrimeFaces Push 及时获取该评论的价值
标签: java jsf jakarta-ee