[英]Real-Time Communication Between Linux Web Server and .NET Client Application
我要做什么
開發一個C#WPF Windows應用程序,該應用程序可以使用運行帶有MySQL的CentOS 6 Linux的中央Web服務器向其他WPF應用程序發送和接收數據。
WPF客戶端必須能夠向服務器發送消息,並且必須能夠實時偵聽服務器中的消息並在消息發布后立即對其進行顯示。
服務器端程序應該能夠將其中一些消息解析為.NET數據對象,並且應該能夠將消息廣播給所有客戶端或僅特定客戶端。
此外,如果服務器程序可以處理來自移動應用程序(Android應用程序至服務器-服務器至WPF客戶端,反之亦然)以及WPF客戶端的請求,則這將是非常可取的,但不是必需的。
例
服務器 (德克薩斯州的服務器)
管理員客戶端 (加利福尼亞用戶)
客戶端2 (佛羅里達州的用戶)
客戶端3 (紐約用戶)
我從計算機Admin Client向服務器發送了一個“ hello”廣播。
服務器接收消息並向所有偵聽客戶端廣播“ hello”。
客戶端2和客戶端3在其客戶端上顯示“ hello”,並回答“嘿!”。
服務器收到“嘿!” 消息並將它們都發送到Admin Client。
我發送一條消息“ open sesame”,該消息僅在客戶端2的應用程序上執行RunOnMagicWord()方法,而對客戶端3無任何作用。
Client2運行RunOnMagicWord()並發送“完成!” 方法執行后發送給服務器的消息。
服務器收到“完成!” 消息並發送給Admin Client。
我所期待的
我寧願將所有內容(包括服務器端程序)都保留在C#.NET中,以便可以輕松地序列化客戶端之間和發送給服務器的數據。 SignalR似乎與我要尋找的最接近,但是在我看來,它僅適用於IIS,不適用於Apache / Linux。 我沒有選擇切換到IIS的選項,而且感覺好像我可能使整個過程過於復雜,所以...
我的問題
我是否正沿着正確的道路看着使用SignalR之類的東西? 如果是這樣,如何使它在我的CentOS服務器上運行? 還是有一種更簡單的方式將Linux / MySQL服務器提供給.NET應用程序這種功能?
編輯:添加了我嘗試過的其他內容,重新格式化了段落,添加了我對此項目的其他限制以回應評論
您提到的所有內容都可以使用。 但是,應由業務需求和約束來決定應該使用什么:
對於這種聊天功能,Linux上的SignalR和mono .net應用程序應該可以正常工作。 另外,Signalr並不是這里唯一的選擇,您可以使用.net的許多websocket實現,例如https://github.com/StackExchange/NetGain
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.