我強烈建議您在此時重新考慮Zebra websocket解決方案。
最好的解決方案仍然可能是迷你網絡服務器解決方案。
我與斑馬的WebSocket解決方案的經驗: 背景:
我最初嘗試創建一個Node.js的解決方案(我在幾個地方的任何服務器是可行讀過)。 但是,即使在獲得Zebra簽署的證書後(即打印機/服務器經歷了成功的握手過程),連接嘗試失敗後,它仍然失敗並出現一個模糊的錯誤,當檢查與打印機試圖驗證特定Tomcat版本/服務器正在使用!!!
我確實得到了Zebra開發人員的答覆,他正在開發.Net解決方案,但也無法使其正常工作,並且在他們完成解決方案之前等待來自Zebra'工程師'的進一步信息。他們表示,他們會在發送信息時發送信息,並希望在一週內得到信息(超過一週 - 沒有運氣)。
所以 - 我決定組裝一個Tomcat服務器 - Zebra正在工作的唯一例子...我得到了servlet運行的示例,但開始出現新的證書問題(因爲我更改了服務器/域等) 我想到了整個笨重的過程 - 並認識到1交易斷路器 - 非常嚴格的ssl身份驗證和簽名過程風險太大。
E.g.假設您有100多個客戶依靠此解決方案。 如果您遇到證書問題(例如,域名更改,服務器設置更改或證書失效/失效) - 則所有100+客戶都沒有打印機。 但是你不能自己修復它 - 修復/生成一個新的證書等重新簽名過程是緩慢的,並依賴於外部資源! (這是一個手動的Zebra過程btw - 您通過電子郵件發送,然後在Zebra員工用簽名證書進行響應之前,您將等待相當長的時間)。
這意味着所有100多個客戶在相當長的時間內都沒有打印機服務,但您沒有選擇,只能讓Zebra在您的證書上簽名。對我來說這是一個不可接受的風險 - (websocket解決方案不應該依賴Zebra簽名的證書 - 在您安裝您的(或您的客戶端)打印機之後,您將打印機配置爲指定一個EXACT域名/地址連接到)。
如果您的迷你服務器解決方案 - 如果客戶有問題 - 它只會影響單個客戶,而且您不依賴外部公司簽署證書來解決問題。
以下是已識別的問題及其相關風險。
問題1)執行得很差 - 我不能(也不能)讓它連接到一個非常特定的Tomcat設置以外的標準服務器! 風險水平:低 - 即這是一個初始成本和時間負擔 - 但一旦處理這個問題導致進一步問題的風險最小。 風險: a)將開發限制在非常具體的服務器和技術上。 b)增加初始開發/測試的時間和成本。
問題2)記錄不完整 - 我已經確認(和斑馬已經驗證過)文檔中的幾個錯誤 - 文檔中也散佈着重要的信息,很難找到與文檔其餘部分分開的readme.txt文件。 風險水平:低 - 即這是一個初始成本和時間負擔 - 但一旦處理這個問題導致進一步問題的風險最小。 風險: a)減緩最初的發展。 b)增加初始設置/開發的時間和成本。
問題3)打印機安全/ ssl認證計劃和實施不善。它涉及多個步驟 - 極其嚴格,涉及緩慢的斑馬簽署過程,造成持續的風險。 風險等級:高 - 即這是我們無法使用此解決方案的原因。 風險: a)將開發限制在非常具體的服務器和技術上。 b)減緩最初的發展。 c)增加初始設置/開發的時間和成本。 d)對項目造成持續高水平風險,如下所示: --->這個想法是,一家公司將依靠這種打印機連接解決方案 - 因此任何潛在的停機時間都將導致重大業務中斷。 --->以下任何一種情況都意味着所有依賴此websocket解決方案的客戶將在新的Zebra簽署的證書組織成功後幾天內不提供打印機服務: ---> 1)證書過期,2)證書失效,3)服務器被移動,4)域詳細信息改變,5)Tomcat服務器設置被修改(由於打印機驗證某些Tomcat /服務器設置的方式) --->另外,上述5個方案僅基於我的測試到目前爲止 - 可能還有其他可能的限制,這可能意味着我還沒有遇到的證書失敗。
總結: IMO問題3帶來了不可接受的風險,在重新考慮Zebra websockets之前需要做以下兩件事情。 1)他們需要正確的文檔說明WebSockets如何連接到服務器,因爲它是隱藏的,甚至斑馬的員工目前都處於黑暗中。 2)他們需要刪除一些身份驗證限制 - 以便您可以解決任何問題而不需要耗時的Zebra交互。
賈森!你是男人!我用斑馬線在電話上花了2個小時,他們不知道我在說什麼。我沒有任何解決方案可以讓我從沒有PC的A點到B點獲取信息。我想我會盡快購買其中的一種。你知道任何有關websockets的文檔嗎?從我簡短的搜索中我發現它還沒有被標準化。我想在我的服務器端使用PHP。看起來我會在LinkOS上編寫應用程序,通過websocket與我的服務器進行通信。你可以提供的任何附加信息顯然是非常有價值的。 – Mark 2013-03-06 22:32:05
我相信Websockets被認爲包含在HTML5的保護傘下。使用Zebra打印機,所有websocket連接都通過TLS進行保護,因此希望能夠減輕您的安全隱患。因爲Zebra SDK會將所有WebSocket設置從您身上抽象出來,所以Websocket教程並不是您必需的。您只需將打印機配置爲指向您的Web應用程序(使用Zebra SDK)。 SDK是用Java編寫的,我不知道如何將它與PHP集成。我只用了Apache Tomcat和一個Java Web應用程序。 – 2013-03-07 01:21:54
要清楚 - Zebra打印機提供了許多技術,包括爲出站通信編程打印機本身(請向經銷商瞭解ZBI)。我不知道ZBI是否可以通過websockets進行通信。如果ZBI不支持websocket通信,那麼您的打印機將實際上是一個「奴隸」打印機,它只會按照所告知的進行操作。它將無法向服務器詢問任何內容;相反,服務器必須強制信息下達到打印機。使用websockets,這是微不足道的。但是,如果沒有ZBI,打印機不能被「編程」來詢問數據。 – 2013-03-07 01:27:37