一個基於
.NET 6開發的線上音視訊聊天專案,客戶端使用WPF開發,後端使用.NET Core Web API。
一. 專案介紹
一個基於.NET 6開發的線上音視訊聊天專案,客戶端使用WPF開發,後端使用.NET Core Web API。
倉庫位址:https://github.com/qian-o/Dimension
倉庫截圖:

專案程式碼結構:

二. 使用第三方相依性介紹
公用相依性
- log4net 日誌記錄。
- SignalR 用於伺服器與客戶端的通訊手段,該專案用於好友申請、訊息提示、公告、聊天和音視訊通話等一系列通知。
- EntityFrameworkCore 操作資料庫的 ORM 工具,服務端使用 SqlServer,客戶端使用 Sqlite。
- Newtonsoft.Json 序列化和反序列化 JSON。
服務端
- TencentCloudSDK 操作騰訊雲服務 API,該專案用於管理通話房間。
- aliyun-net-sdk-core 操作阿里雲服務 API,該專案用於簡訊服務。
- CHSPinYinConv 取得中文拼音。
- Portable.BouncyCastle TRTC 加密使用。
- SixLabors.ImageSharp 操作圖片,因 C# 中操作圖片需要微軟的 GDI 繪圖,但在 Linux 上操作需透過 mono 的 libgdiplus 函式庫,處理效果並不理想。
WPF 端
- TXLiteAV 操作騰訊雲的 TRTC 服務,本機裝置音視訊推流、取得房間內其他使用者音視訊資料。
- XamlAnimatedGif 播放 GIF,因裝置效率問題,修改作者原始碼後重新打包使用。
- 原始函式庫:https://github.com/XamlAnimatedGif/XamlAnimatedGif
- 問題:https://github.com/XamlAnimatedGif/XamlAnimatedGif/issues/160
三. 專案設定
如果需要正常執行此專案,請了解相關設定。
3.1 後端設定:
後端使用 .NET Core Web API 開發,設定如下:
- 第三方服務設定
修改DimensionService.Common命名空間下 ClassHelper類別

請填寫紅框內付費服務內容,本程式使用阿里的簡訊服務和騰訊的 TRTC 服務,填寫內容請見官方說明。
- 資料庫
該服務採用SQL Server 2019資料庫,並使用EF CORE作為主要的ORM框架,首次使用需要遷移資料庫。
開啟程式套件管理主控台,輸入
Update-Database InitialCreate

該專案提供線上位址,http://47.96.133.119:5000 (站長註:目前無法存取此位址)
3.2 客戶端設定
客戶端使用 WPF 開發,如下圖:

紅框內容需與服務端保持一致
已實現的功能
- 登入|註冊
- 新增好友
- 音視訊線上通話
- 聊天(圖片、文字、富文本)
- 截圖(多顯示器不同 dpi 支援)
客戶端部分截圖:
站長沒有條件,錄製一個登入動畫(哈哈):

下面是作者 readme 和部落格園的圖片:








四. 功能示範
作者太懶,以後再寫!
我還是提供測試帳號和程式位址吧。
不過需要安裝 NET6 桌面執行階段,這是下載位址:.NET 6 桌面執行階段
測試使用者
1571221{1 ~ 9}177,
密碼統一為 12345678。
所有使用者登入資訊我都放在程式包裡啦,並且都添加了我作為好友。😄

五. 程式包
連結:https://pan.baidu.com/s/1aTh_710GpKIIHOHpvVCpBw?pwd=cp4o
提取碼:cp4o
--來自百度網盤超級會員 V4 的分享
六. 示範影片
連結:https://pan.baidu.com/s/1n-sQZFgO9GEhS80jHLVouA?pwd=85x3
提取碼:85x3
--來自百度網盤超級會員 V4 的分享
七. 專案倉庫位址
GitHub 位址:https://github.com/qian-o/Dimension