一个基于
.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 支持)
客戶端部分截圖:
站長沒有條件,錄製一個登錄動畫(哈哈):

下面是作者 readmd 和博客園的圖片:








四.功能演示
作者太懶,以後再寫!
我還是提供的測試帳號和程式地址吧。
不过需要安装 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