整體架構
- 客戶端 (WinForm/WPF):UI、消息收發、文件傳輸、視頻通話調用。
- 服務端 (Console/Windows Service):Socket 監聽、用戶管理、消息路由、文件中轉、視頻信令。
- 數據庫 (SQL Server):用戶表、好友表、離線消息、群組、文件記錄。
核心技術點
- 通訊協議:TCP 長連接 + 自定義二進制/Protobuf/JSON 協議。心跳檢測離線。
- 異步 Socket:`SocketAsyncEventArgs` 或 `async/await` 實現高併發。
- 消息路由:服務端維护 `userId -> Socket` 映射,私聊直發,群聊廣播。
- 文件傳輸:大文件分片,斷點續傳(記錄已傳 offset),單獨端口或複用主連接。
- 視頻/語音:集成 WebRTC (C# 端用 WebRTC.net) 或調用系統 API,信令走主通道,媒體流走 UDP (SRTP)。
- 數據庫操作:Entity Framework / Dapper,參數化防注入,連接池。
開發建議
注意
完整代碼量較大,建議分模塊增量開發,利用 Git 版本控制。