[英]Inter Process Communication - Modern Options?
我正在開發具有Windows服務和用於配置和控制Windows服務的前端UI的系統。 不適使用.net 4.6。
該服務將產生多個服務器,用戶可以通過UI創建,啟動和停止這些服務器。
研究UI用來控制我的服務並從服務器接收狀態信息的最佳方法。
從我的研究中,我發現了以下內容:
SQLITE-創建一個UI寫入命令的消息隊列,服務器將定期讀取並使用另一個消息隊列進行響應。 不理想,因為它沒有生命並且需要輪詢系統。
命名/匿名管道-實時請求/響應。 是可行的,但是在處理與單個服務器通信的多個客戶端時有點笨拙。
WCF-實時請求/響應。 易於實現且易於操作,只不過用戶需要擔心為運行系統配置有效端口。
滾動我自己的通信協議-實時請求/響應,但同樣的問題也適用於選擇端口號。
今天的技術還有什么我想念的嗎?
我實際上沒有意識到WCF可以使用命名管道。 找到了理想的帖子。 易於實現,用戶無需擔心選擇IP端口等問題。
由於我們列出了所有選項,因此如何將MemoryMappedFile與EventWaitHandle結合使用
https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files
https://docs.microsoft.com/en-us/dotnet/standard/threading/eventwaithandle
與WCF比較的MemoryMappedFile + EventWaitHandle
https://www.techmikael.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html
Signalr和OWIN / Katana
https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host
執行簡單的HTTP POST / GET請求和響應,使用Signalr,您可以進行實時發布/訂閱。 請參閱鏈接以獲得良好的介紹。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.