一款基于 Qt + asio + gRPC 构建的分布式即时通讯软件
QuickChat 是一款高性能、分布式的即时通讯软件,名称取“简洁而快速”之意。项目采用现代化的 C++ 技术栈,前端基于 Qt 框架实现,后端基于 asio 与 gRPC 构建分布式服务架构,实现了完整的即时通讯功能。
- 单机支持 1-2 万连接稳定运行,不丢包、不断线
- 分布式部署可支撑数万级并发场景
- 具备良好的横向扩展能力
- 用户注册与登录
- 验证码收发
- 用户搜索
- 好友申请与认证
- 消息通讯
- 文件传输
- 群聊功能
- 服务端踢人
- 断点续传
- 断线重连
- Qt 框架:纯代码布局,MVC 架构
- 自定义 Delegate:实现高性能渲染
- TCP 管理模块:封装异步回调处理服务端响应
- Sqlite:本地数据库,支持离线数据加载与远程数据同步
- asio:高性能异步网络库
- gRPC:分布式服务通信框架
- MySQL:数据持久化存储
- Redis:缓存层,加速热点数据访问
- 现代 C++:智能指针、移动语义、完美转发等特性
- 单例模式、Actor 模式、生产者-消费者模型
- RAII、代理模式、MVC 三层架构
- 享元模式与池化技术
- 心跳检测机制保障连接稳定性
部署模式 最大连接数 消息延迟 稳定性 单机 10,000+ < 50ms 99.9% 分布式集群 50,000+ < 100ms 99.99%
- 用户认证模块
- 好友关系管理
- 消息收发功能
- 文件传输
- 群聊功能
- 分布式部署支持
- 断点续传
- 断线重连
- 语音/视频通话(规划中)
- 端到端加密(规划中)
- C++17
- Spdlog
- Boost
- nlohmannjson
- grpc
- mysql
- redis