2010-02-03 102 views
4

我正在與電子設備製造商合作,將基於LAN的控制系統嵌入到產品中。這個想法是通過Web瀏覽器提供系統配置/控制界面,因此客戶端永遠不需要安裝軟件。我們可以通過嵌入式模塊發送和接收串行數據來與設備進行通信。由於該設備也可以通過前面板用戶界面進行控制,因此創建了一個挑戰,即保持遠程Web界面的同步時間非常短。看起來websockets或某種Push是我們處理從服務器到客戶端的實時事件所需要的。如何在嵌入式設備服務器上實現websockets?

我正在使用Lantronix Mathport AR嵌入式設備服務器。開箱即用的單元將提供任何自定義HTML和Java servlet/applet。如果我們需要更多的靈活性,我們可以選擇安裝輕量級的Linux發行版。我不知道如何實現任何服務器端應用程序,因爲該設備不運行標準的Apache。我相信它正在使用Boa。

任何人都可以指導我在正確的方向如何做到這一點?

回答

2

一些常規信息... WebSocket協議(draft spec here)是TCP之上的一個簡單層。這意味着,如果你的平臺已經有一個TCP服務器,那麼實現WebSocket只需幾個小時。該協議指定了握手和兩種發送數據幀的方式。

我強烈建議您先閱讀39頁規範。

1

正如Tihauan已經提到的,從閱讀規範開始,並且還注意到仍然存在一些變化,儘管websockets現在比1年前更加穩定。

對我來說關鍵是要求websocket數據完全是UTF-8文本,它很好地適用於基於JSON的消息定義。

我們的系統採用嵌入式Linux的一種形式,所以我們再添加和利用了以下庫:從 http://git.warmcat.com/cgi-bin/cgit/libwebsockets/

  • 「楊松」: http://www.digip.org/jansson/
    • 「libwebsockets」 從

    使用上面的支持庫,我們創建了一個內部輕量級的「客戶端/服務器」,允許我們的其他軟件模塊註冊某些適用的websocket消息,並根據需要進行響應。工作很好。

    祝你好運,最好的問候,

    +0

    請問你能分享一些客戶端應用程序的代碼示例嗎? – 2017-04-06 12:44:10

    相關問題