2012-10-25 119 views
2

我希望得到關於能夠處理來自設備的實時數據並根據輸入做出決定的最佳服務器端代碼的建議。一個簡單的例子:假設我有一個網絡啓用的溫度計,運行一個輕量級的TCP/IP客戶端堆棧。當溫度達到30度時,我希望設備與服務器聯繫,然後我希望服務器向我發送電子郵件。我也希望服務器能夠發送一個命令來打開加熱器。針對嵌入式設備的服務器端應用程序

這裏的問題是能夠從服務器啓動TCP消息,並通過各種各樣的任意防火牆和路由器,一直到客戶端設備。我知道有一些「解決方法」,例如輪詢服務器以獲取更新,或者在我打電話給服務器的情況下進行「長輪詢」,並在有需要發送的情況下保持連接處於打開狀態。這裏的問題是帶寬。消息很少見,但很重要,所以標題和握手佔流量的98%。

我一直在閱讀WebSockets,看起來他們正是我需要的東西,尤其是在與HTML5配對時。

有沒有人知道可以運行在雲服務器上的隨時可用的服務器軟件包,並使用一些標準化的方法將數據推送到我的設備?我真的不想在這裏重新發明輪子,我不能相信我是第一個嘗試這種方式的人。我看到一些人用他們自己的專有解決方案來做,但我更感興趣購買一站式套餐。

回答

1

WebSocket由於其低開銷,低延遲以及與Web和一般網絡基礎結構的兼容性而成爲將嵌入式設備連接到後端基礎架構的有效選擇。有一個廣泛的服務器實現可用,即基於Jetty,node.js等

作爲一個例子,這裏是一個演示連接一個Arduino設備到WebSocket服務器和瀏覽器客戶端顯示實時數據圖表:

那裏使用,AutobahnPython的技術,是一種基於Python /扭曲的WebSocket實現,

  • 提供服務器和客戶端執行
  • 像RasperryPi嵌入式設備直接運行
  • 可以很容易地通過串行或CAN總線(由於扭曲支持非常好)
  • 提供RPC和PubSub的messsaging連接的接入傳感器WebSocket上的圖案

該技術是開源的,因此您可以推出自己的解決方案。如果您尋求幫助/服務以便爲您完成,請與我聯繫;)我們還提供Tavendo WebMQ,一種虛擬設備(VMware,EC2),它增加了功能,管理UI等,還包括一個REST API以將數據推送到WebSocket客戶端。

聲明:我是Autobahn的作者,爲Tavendo工作。

+0

我其實剛剛發生在高速公路上,它看起來很有趣。我怎樣才能直接與你聯繫? –

+0

給我發一封郵件:tobias「dot」oberstein「at」tavendo「dot」 – oberstet

+0

我剛剛通過電子郵件聯繫了@ ...這是否會奏效? –

相關問題