傳統 Socket 模式下,客戶端連接後處於被動接收狀態,服務端難以主動發起請求。若需「服務端主動向客戶端要資料、客戶端回應」,應採用 **支援雙工通訊的高層框架**。
IClientCallback,服務端透過 OperationContext.Current.GetCallbackChannel<IClientCallback>() 主動呼叫客戶端方法。InstanceContext 建立雙向通道。on("RequestData", ...) 處理伺服器呼叫並回傳。rpc StreamData(stream Request) returns (stream Response),雙向串流任意端主動發送。| 場景 | 推薦 |
|---|---|
| .NET 內網、需事務/可靠會話 | WCF Dual |
| 跨平台、Web/行動、即時推送 | SignalR |
| 微服務、高效能、強契約 | gRPC |
拋棄裸 Socket 手寫協議,擁抱現代雙工通訊框架,大幅降低複雜度並提升可維護性。