Skip to content

Viveksssss/QuickChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickChat 即时通讯

一款基于 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

About

A real-time messaging software implemented in C++.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages