一个基于
.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。
所有用户登录信息我都放在程序包里啦,并且都添加了我做为好友。