2015-11-23 139 views
3

有沒有辦法在客戶端調用一個外部程序並「通話」?例如,如果我有一個Node.js服務器爲AngularJS或任何其他框架,我希望用戶按下瀏覽器上的一個按鈕,並且客戶端上的一個以前安裝的程序開始運行併發送回客戶端的一些消息...如何使用Node.js在客戶端運行可執行文件?

我可以實現嗎?

+0

你可以,如果你還代碼使用的用戶,以與桌面應用程序你的web應用的談話瀏覽器的客戶端應用程序和擴展/插件。 – Shanoor

+2

執行此類操作的一種方法是通過安裝應用程序時設置的自定義協議鏈接。例如,您可以通過像「steam:// friends」這樣的鏈接啓動蒸汽朋友窗口。用戶必須允許執行此操作。至於在用戶的機器上運行一個任意的可執行文件,不是不可能的(也不安全)。 – CollinD

+0

我會考慮http://socket.io/和節點進程'require('child_process')。exec'的組合。後者有事件發射器,你可以很容易地連接到插座,以跟蹤本機可執行的進度 – Joe

回答

0

我認爲更好的形式是使用API​​ REST,例如可以在節點JS中創建服務器API,並使用AngularJS在桌面應用程序中使用瀏覽器和JAVA或.NET中的服務

下面是一個簡單的Example使用節點和角

+0

我使用Node和Angular。但是我怎樣才能讓他們(特別是客戶端)與JAVA或.NET交談? – felipefss

+0

使用框架:NET或編程一個WEB應用程序在JAVA你需要經驗,很難用一個教程esplciali,因爲他們很多都是針對瀏覽器應用程序而不是Destok的;爲什麼你需要客戶端應用程序不在瀏覽器中運行? – oriaj

+0

我需要web應用程序與桌面c#應用程序交換消息。我需要一些存儲在Javascript無法獲得的計算機中的信息:/ – felipefss

1

考慮使用本機客戶端

本機客戶端是在瀏覽器中高效,安全地運行編譯的C和C++代碼,獨立於用戶的操作系統的沙盒。便攜式Native Client將該技術與架構獨立性進行了擴展,讓開發人員可以將代碼編譯一次,以便在任何網站以及任何具有提前(AOT)轉換的架構上運行。

簡而言之,Native Client將本機代碼的性能和低級控制帶到了現代Web瀏覽器,而不會犧牲Web的安全性和可移植性。

https://developer.chrome.com/native-client

相關問題