以網頁傳遞訊息遠端機器的應用程式中(exe)

一般網頁在瀏覽器端執行時,不能直接傳遞訊息至本機端執行中的應用程式,或是另一部機器執行中的應用程式。

image

 

筆者遇到的案例是,由第三方所開發的PHP網頁執行某個動作時,希望將訊息傳達至某一部機器上正運行的應用程式(.NET Windows Form)。

原本作法是在 Windows Form 上建立一個輪巡式呼叫 PHP 提供的另一個網頁, 這樣作設計上還矕單純的。

不過缺點是:

(1) 即時性

(2) Client 端數目一多,會額外造成 PHP Server 上的負擔

為改善這兩項缺點,參考{ Silverlight call WCF(tcp) self host 實作 } 的作法

在 PHP 中置如沒有視覺畫面的 Silverlight,透過 Silverlight 呼叫 WCF Server,再由 WCF Server 轉呼叫指定某一部機器上的 exe,

如下圖:

image

 

這個案例設計過程中,原本要嘗試將 Silverlight 省略,改用 JavaScript 呼叫 WCF REST API,不過考慮到不同瀏覽器的 JavaScript 不同的問題,作後還是採用 Silverlight 的方式。

 

系統上線會遇到的小問題是,得強迫使用者安裝好 Silverlight。