对于JSF 2.0,是否有比Icefaces更好的Ajax推送

我处于这样一种情况:我希望在基于Java的Web应用程序中实现Ajax Push,以更新网页上库存项目的数量,因为它们在没有用户交互的情况下进行更改。 我知道执行此操作所需的技术称为Ajax Push。 我也有一些JSF 2.0的经验,这是首选,但不是必需的。

首先我们需要一个演示,在几周内展示这个,但如果演示被接受,我们将有足够的时间来做正确的。

我环顾四周,发现Icefaces显然做得很好,我会调查一下。 我想知道是否碰巧存在其他可能更适合我们使用的东西?

请不要“这些是来自谷歌的三大热门”答案。 我想根据经验听取意见。

我们尝试了Icefaces(在JSF 1.2模式下)和Atmosphere / Comet with Primefaces。

Icefaces推出工作出色的开箱即用。

我们无法使Atmosphere工作(在Primefaces中),但这可能是因为我们尝试了最新的(0.6)版本,Primefaces还不支持它 – 所以现在我们正在等待更新版本(它是承诺它将成为p:dataTable被重写之后的下一个重要特征)。 在我们的例子中,推送不是演示中的关键元素,我们可以轻松地使用轮询而不是真正的推送解决方案。

Icepush很容易起床和运行,而Atmosphere没有很好的记录(恕我直言),并需要一堆jar子和配置。 它肯定不适合初学者。

所以,如果ajax:push是你演示的关键部分,我建议你继续使用JSF 1.2和Icefaces。 至少在演示完成并且客户满意之前 – 您仍然可以在此之后花时间使用Atmosphere配置;-)

您现在可以在ICEfaces之外使用Ajax Push。 结帐http://www.icepush.org/ 。 有JSP,Spring MVC,Wicket,GWT,jQuery,prototype和Grails的客户端适配器。

我不知道它是否更好,因为我不做IceFaces,但PrimeFaces也有一个组件。 它利用Atmosphere在引擎盖下尽可能地与appserver无关,这反过来已经非常棒了。 它抽象出所有特定于appserver的细节。 另请参阅有关Servlet 3.0与Atmosphere的文章:

在部署应用程序时,Atmosphere始终会自动检测到最佳的异步API。 它总是首先尝试查找3.0 Async API。 如果失败,它将尝试查找WebServer的本机API,如Grizzly Comet(GlassFish),CometProcessor(Tomcat),Continuation(Jetty),HttpEventServlet(JBossWeb),AsyncServlet(WebLogic),Google App Engine(Google)。 最后,它将回退使用阻塞I / O线程来模拟对异步事件的支持。

如何将其全部工作在PrimeFaces用户指南(PDF)的第6章中详细解释了聊天应用程序的风格,因为它显示在 showcase页面中。

我认为ICEfaces是AJAX PUSH的最佳解决方案,他们开创了它,在我看来他们拥有最好的实现。

Primefaces看起来很有前景,但推送function不适用于他们的最新版本。 使用Icefaces 2 beta,推进工作OOTB。

有一个基于独立氛围框架的jsf 2.2推送实现名为Ext JSF Push。 它完全集成到JSF中,可以推送到单个客户端,直接将渲染推送到一组客户端或将渲染事件推送到一组客户端:

    

push标记内的呈现事件可以通过传统的render属性或代码调用来触发。 渲染透明地广播给所有连接的客户端( http://www.intersult.com/wiki/page/JSF%20Ext%20Push )。

对于短期演示要求,以及您的长期“正确行动”目标,ICEfaces绝对是您的最佳选择。

首先,ICEfaces为开发推送应用程序提供了最自然的模型。 您可以简单地考虑服务器端触发器导致应用程序中的状态更改。 ICEfaces和JSF完成剩下的工作,影响新状态的无缝渲染。 没有杂乱的推送标记标记,您必须准确地声明演示文稿如何随每个推送事件而变化。 如果您了解JSF,那么使用ICEfaces向应用程序添加推送就不那么简单了。 首先使用基本的JSF应用程序,然后将必要的推送逻辑添加到服务器端代码中。 无需其他更改。

从长远来看,您应该知道ICEfaces提供了企业级部署所需的所有部署技术。 Enterprise Push Server是其核心,因为它在集群环境中提供完整的推送连接管理(请参阅: EPS )。 ICEfaces Ajax Push在许多财富500强企业的各种生产环境中运行,因此您可以放心,它可以满足您的需求。 此外,还提供专业的客户支持。 这些都是关键特性,可以帮助您销售演示背后的实质内容。

市场上没有其他任何东西可以比较,并期待符合JSF 2.0标准的ICEfaces 2.0,并带来下一代Ajax Pushfunction。 它现在可用于Beta版。