簡體   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