使用 WF4 WCF Workflow Service 雙工通訊實作聊天室,支援開啟/加入/離開聊天室、廣播/私訊訊息、線上名單查詢。客戶端為 WinForm,各自開啟 WCF 回呼服務。
每個客戶端啟動獨立 WCF 服務接收伺服器推播:
var ro = new Random();
int port = ro.Next(8000, 9999);
var address = $"https://localhost:{port}/ServiceCallback";
var callback = new ChatRoomCallback { MainFrm = this, UISyncContext = SynchronizationContext.Current };
var host = new ServiceHost(callback, new Uri(address));
host.Open();
將回呼位址傳給伺服器,伺服器使用 Send 活動主動呼叫客戶端回呼合約。
WF4 優勢:可視化編程、設計時極少程式碼、邏輯清晰易維護。