以網頁傳遞訊息遠端機器的應用程式中(exe)
一般網頁在瀏覽器端執行時,不能直接傳遞訊息至本機端執行中的應用程式,或是另一部機器執行中的應用程式。
筆者遇到的案例是,由第三方所開發的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,
如下圖:
這個案例設計過程中,原本要嘗試將 Silverlight 省略,改用 JavaScript 呼叫 WCF REST API,不過考慮到不同瀏覽器的 JavaScript 不同的問題,作後還是採用 Silverlight 的方式。
系統上線會遇到的小問題是,得強迫使用者安裝好 Silverlight。