2014-07-07 121 views
0

的方法,我有服務器端和前端一個C# Web API項目,我有ExtJS 4.2.1(JavaScript框架客戶端)。最適合實時處理信息/服務器+ JS客戶

有一個在我的應用程序的一部分,我請求開始長期運行的進程(約5分鐘),我想顯示正在執行的過程的狀態的用戶。

基本上,過程將運行在數據庫(800),每一個員工一個特殊的計算,所以我希望讓用戶知道哪些員工在那一刻被處理。

所以我想在這樣的方式有兩種,也許我不知道是否有兩個是確定的。

  1. 使用SignalR來實時顯示過程信息。
  2. 寫入database table所有進程日誌(即其正在處理每一個員工)。

如果我用的是第一種方法,如果用戶關閉瀏覽器,他將失去所有有關過程的信息,如果他登錄到該應用程序再次,他將只能看到實際狀態。

如果我使用第二種方法,如果他登錄到應用程序再次,他能看到的所有信息,並使用也許定時器客戶端上的數據可以每5秒刷新一次。

有誰已經實施了這樣的事情?任何建議表示讚賞。

回答

0

您應該使用兩者的組合。當您計算員工將狀態保存到數據庫並將更改發佈到服務總線上時。

讓SignalR挑選這些消息並把它們轉發給客戶端。這樣,用戶在連接時會看到舊狀態,然後用SignalR到達新狀態。我創建了一個Event聚合器代理,使得這非常簡單。

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

按照維基來進行設置,這裏是一個示範項目 https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4

現場演示 http://malmgrens.org/Signalr/

相關問題