一个基于
.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
框架,首次使用需要迁移数据库。
打开程序包管理控制台,输入
代码语言:javascript复制Update-Database InitialCreate
该项目提供线上测试服务地址,http://47.96.133.119:5000 (站长注:目前无法访问此地址)
3.2 客户端配置
客户端使用WPF开发,如下图:
红框内容需与服务端保持一致
已实现的功能
- 登录|注册
- 添加好友
- 音视频在线通话
- 聊天(图片、文字、富文本)
- 截屏(多显示器不同dpi支持)
客户端部分截图:
站长没有条件,录制一个登录动画(哈哈):
下面是作者readmd和博客园的图片:
四. 功能演示
作者太懒,以后再写!
我还是提供的测试账号和程序地址吧。
不过需要安装NET6桌面运行时,这是下载地址:.NET 6桌面运行时
测试用户
1571221{1~9}177,
密码统一为12345678。
所有用户登录信息我都放在程序包里啦,并且都添加了我做为好友。