2010-10-21 76 views
0

假設我有一個顯示我的結果的ASP.NET或Silverlight客戶端。我想顯示我的服務器或嵌入式設備的當前狀態。 (假設設備讀取溫度和溼度統計數據)一般來說,我該如何實現實時監控系統?

我應該如何將設備的狀態信息發送到前端?我應該輪詢設備並將結果保存到SQL,Azure Table等? (Azure是一種與其他原因相適應的技術,這就是爲什麼我提到它)

或者我應該創建一個WCF服務,直接輪詢設備並返回當前狀態。

什麼更有意義?

回答

0

在ASP.NET或Silverlight中,您將不得不從客戶端(網頁或Silverlight應用程序)輪詢到後端以獲取當前狀態。在ASP.NET中,我會考慮通過使用Javascipt對服務進行AJAX輪詢來實現此目的(使用Jquery或類似的東西來簡化它)。

在silverlight中,您需要配置某種服務來返回結果,並使用在單獨線程上運行的Timer控件對其進行輪詢。

+0

使用ASP.NET我建議使用PageMethods。所有事情都考慮簡單的代碼。 – jcolebrand 2010-10-21 20:16:03

+0

後端應該是什麼?設備本身,還是像SQL這樣的中間人? – LamonteCristo 2010-10-21 20:48:12

+0

PageMethods是另一種選擇,但使用Jquery和ASP.NET編寫簡單的Web服務並不困難。 Web服務的優勢在於,如果需要,也可以由其他程序調用,例如,如果您想製作移動應用程序。 – bechbd 2010-10-21 21:08:47

0

您還可以在Silverlight應用程序中使用「推送」綁定。基本上,不是您手動輪詢服務器,服務器會在您認爲有必要讓客戶知道任何更改時隨時向您發送推送通知。

+0

這是HTTPDuplex綁定?我想我記得讀過一篇文章說這是服務器上非常不可擴展的選項。它適用於Silverlight 3.x不知道它今天仍然適用 – LamonteCristo 2010-10-23 22:17:18