我有一個運行着某些特定硬件的Web應用程序。這在下面的步驟來實現:從Web應用程序提供硬件支持
- 用戶運行一個小的安裝程序,在客戶機上放置Java文件(一對夫婦 等)。主要件是一個名爲「hardwareManager」的罐子
- 用戶訪問網絡應用程序。該Web應用程序運行一個java applet,該applet由於在安裝期間放置了一個.java.policy文件,因此 有權與 與瀏覽器沙箱外的客戶端計算機進行交互。
- 該applet檢查以確保hardwareManager正在運行, 並且如果沒有運行命令來啓動它。
- 用戶與通過 javascript將命令發送到小程序的web應用進行交互。該小程序然後將命令寫入客戶端機器上的文本文件 。該文本文件是由不斷監測的硬件管理器,它運行它讀取的任何命令。
這工作,但似乎笨重。我對如何改進它有一些想法,但我不知道哪些是值得嘗試的。
將hardwareManager設置爲socketServer並讓applet直接連接到它,而不是通過文本文件會更好嗎?這甚至有可能嗎?
有沒有一種方法可以完全消除applet,並讓javascript直接與hardwareManager交談?也許通過編寫hardwareManager作爲本地http服務器?它應該運行什麼端口? JavaScript xss限制在這裏適合嗎?
如果您讓hardwareManager接受HTTP請求,那麼他肯定可以直接被JS訪問,甚至可以將其設計爲實現作爲REST Web服務的命令。 XSS:這裏不是問題。您當然需要運行hardwareManager來接受這些命令,以及瞭解哪個端口的方法。 – Viruzzo 2012-01-17 11:14:01
添加到@Viruzzu的答案,您可以使用[Jetty](http://docs.codehaus.org/display/JETTY/Embedding+Jetty),它允許輕鬆地將HTTP服務器嵌入到Java應用程序中。那麼您只需將JavaScript代碼指向本地主機,以便與Viruzzo的hardwareManager – 2012-01-18 03:46:50
進行交互,請將該答案作爲答案,以便我可以爲其投票。 – pkh 2012-01-25 00:07:36