有沒有辦法在客戶端調用一個外部程序並「通話」?例如,如果我有一個Node.js服務器爲AngularJS或任何其他框架,我希望用戶按下瀏覽器上的一個按鈕,並且客戶端上的一個以前安裝的程序開始運行併發送回客戶端的一些消息...如何使用Node.js在客戶端運行可執行文件?
我可以實現嗎?
有沒有辦法在客戶端調用一個外部程序並「通話」?例如,如果我有一個Node.js服務器爲AngularJS或任何其他框架,我希望用戶按下瀏覽器上的一個按鈕,並且客戶端上的一個以前安裝的程序開始運行併發送回客戶端的一些消息...如何使用Node.js在客戶端運行可執行文件?
我可以實現嗎?
我認爲更好的形式是使用API REST,例如可以在節點JS中創建服務器API,並使用AngularJS在桌面應用程序中使用瀏覽器和JAVA或.NET中的服務
下面是一個簡單的Example使用節點和角
瀏覽器沒有明確的配置,這樣的行爲不能運行在本地計算機上的可執行文件將違反安全限制。
Node.js可以執行環境允許的任何操作(例如,用戶權限)。請參閱:https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
考慮使用本機客戶端
本機客戶端是在瀏覽器中高效,安全地運行編譯的C和C++代碼,獨立於用戶的操作系統的沙盒。便攜式Native Client將該技術與架構獨立性進行了擴展,讓開發人員可以將代碼編譯一次,以便在任何網站以及任何具有提前(AOT)轉換的架構上運行。
簡而言之,Native Client將本機代碼的性能和低級控制帶到了現代Web瀏覽器,而不會犧牲Web的安全性和可移植性。
你可以,如果你還代碼使用的用戶,以與桌面應用程序你的web應用的談話瀏覽器的客戶端應用程序和擴展/插件。 – Shanoor
執行此類操作的一種方法是通過安裝應用程序時設置的自定義協議鏈接。例如,您可以通過像「steam:// friends」這樣的鏈接啓動蒸汽朋友窗口。用戶必須允許執行此操作。至於在用戶的機器上運行一個任意的可執行文件,不是不可能的(也不安全)。 – CollinD
我會考慮http://socket.io/和節點進程'require('child_process')。exec'的組合。後者有事件發射器,你可以很容易地連接到插座,以跟蹤本機可執行的進度 – Joe