繁体   English   中英

如何创建一个实时应用程序

[英]how to create a real-time application

使用jsf2.0和PrimeFaces 3.0.RC2 ,我想制作<p:dataTable />来包含我的系统请求以及一个用户持有请求时的情况。 我必须更新此请求的状态,并更新其他所有正在使用系统的其他用户的<p:dataTable /> 我怎样才能做到这一点? 在此处输入图片说明

假设此屏幕对10个用户显示,并且当一个用户更改状态并单击“ 更新”按钮时,该屏幕应反映在所有用户的屏幕上。

如果有人在数据库中添加了新模型,则应该出现。

我的意思是像电子邮件这样的例子

PrimeFaces的推送技术可在其他服务器上使用,例如在Glassfish上也可使用。 一个很好的示例,如何实现它: http : //www.primefaces.org/showcase/push/counter.jsf

当服务器端发生更改时,其他用户无法(通过HTTP)被动地知道。 您必须以某种方式主动轮询服务器并更新UI中的更改。 您可能会设置一个计时器,检查每隔x秒,或者在不同的浏览器事件中进行检查(例如,当用户不再使用浏览器窗口然后返回时)。

但是,最好的办法是单击刷新按钮,这样用户仅在确实需要时才轮询新数据,这样就不会从数据库中过度读取数据。

您需要寻找所谓的pushreverse_ajaxcomet技术。 PrimeFaces通过Servlet实施此技术,但仅在Jetty服务器上有效。 请参阅《用户指南》第6章。

另外,请看一下cometD ,这是一个成熟的项目,它以javascript和其他语言提供了Bayeux协议的实现。 该项目也使用Jetty,但可移植到其他Servlet-3.0兼容的servlet容器中。 我在GlassFish服务器上运行它没有任何问题,但是在客户端上却有一个dojo dataGrid。 您可能会尝试通过Javascript将其集成到PrimeFaces dataTable中,尽管我尚未完成此操作,并且不确定这是否容易完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM