我正在開發一個項目,我想要一個像系統一樣的插件沙箱,但是我遇到的問題是雙向實時交叉進程通信。起初我想到了WCF,因爲它可以傳遞對象元數據,但是很快就意識到WCF的Service Client模型會帶來問題。但在我放下所有的想法和問題之前,這正是我的計劃。雙向交叉進程通信
我想要一個主機應用程序來完成大部分的工作,讓我們調用這個host.exe,host.exe將託管程序的主要應用程序邏輯,以及啓動,執行和查殺插件。插件將通過一個將通過MEF託管的插件代理託管,因此我們將其稱爲proxy.exe。 proxy.exe將加載插件dll並將其託管在一個僻靜的環境中,以隔離故障,如果插件失敗,它將終止代理而不是應用程序。主機和代理需要在兩個方向上進行實時通信,並且因爲要有多個代理主機,所以最好能夠傳遞對象數據。
所以這是我想要的基本想法。我在想幾種方法來做到這一點。第一個是WCF,但是我認爲WCF的工作方式對於服務器的服務器發送請求/命令將是困難的。下一個想法是什麼使用TCP,並讓主機成爲一個TCP服務器並開發一個可用於通信的消息傳遞協議,然而這帶來了一個問題,因爲我沒有WCF元數據的奢華和傳遞複雜的類信息精神錯亂。
通過我所有的研究,我已經提出了問題後的問題,它將非常感謝,如果有人能夠建議解決這個問題。謝謝。
你如何幫助我們?你真的認爲使用幾個代碼示例我們可以解決你的問題嗎? –
你在說IPC嗎?那麼,你不需要WCF,WCF不是實時的進程間通信服務,而是使用基於IPC的實時客戶端 - 服務器技術。 –
@Artur Mustafin,我只是想要我的計劃到目前爲止的想法和反饋。是的,我知道WCF不是實時的。這是我正在看的一個選項。雖然我沒有代碼,但我不想要代碼,只是想法和反饋,謝謝。 – p1p3l1n3