我在尋找一種機制用來創建一個簡單的多對許多消息系統,讓Windows應用程序在一臺機器上,但在會話和桌面通信。許多一對多本地機器上的消息沒有經紀人
我有以下的硬要求:
- 必須在所有的Windows會話運行在一臺機器上。
- 必須在Windows XP和更高版本上運行。
- 無需全局配置。
- 沒有中央協調員/經紀人/服務器。
- 不得要求應用程序提升特權。
我不要要求保證傳遞的消息。
我看了很多很多選項。這是我對想法的最後要求。
以下已經被拒絕違反上述要求的一個或多個:
ZeroMQ:爲了多對許多消息需要中央的代理做。
命名管道:需要中央服務器接收消息並轉發它們。
多播套接字:需要正確配置的網絡卡與有效的IP地址,即全局配置。
共享存儲器隊列:爲了在全局命名空間需要提升的權限創建共享內存。
多播套接字等近作品。還有什麼人可以建議?我會考慮從預打包庫到裸機Windows API功能的任何內容。
(編輯9月27日)更多的位上下文:
通過「中央協調器/代理/服務器」,我的意思是必須在時間運行的應用程序試圖單獨的工藝發送一個消息。我看到的問題是,不可能保證這個過程真的會在需要時運行。通常會使用Windows服務,但無法保證在用戶登錄之前始終啓動特定服務,或者確保某個服務未因某種原因而停止。按需運行會在服務啓動時發送第一條消息時引入延遲,並引發特權問題。
組播插座近的工作,因爲它會設法避免完全的中心協調處理的需要,並不需要發送或接收組播數據包的應用程序提升權限。但是你必須有一個配置好的IP地址 - 你不能在環回接口上進行多播(即使在配置好的網卡上TTL = 0的組播的行爲與預期的環回多播一樣) - 那就是交易斷路器。
「跨會話和桌面」暗示Citrix還是這樣? –
我在想快速的用戶切換和終端服務。 –