Skip to content

TinyChat 是一个分布式即时通讯应用,采用微服务架构设计。项目包含基于Qt的桌面客户端和多个后端服务,提供用户认证、好友管理和实时聊天等功能。

License

Notifications You must be signed in to change notification settings

MaLLLiYA/TinyChat

Repository files navigation

TinyChat - 分布式聊天应用

TinyChat Logo

基于Qt的分布式即时通讯应用,采用微服务架构

License Platform Qt C++ Node.js

📖 项目简介

TinyChat 是一个现代化的分布式即时通讯应用,采用微服务架构设计。项目包含基于Qt的桌面客户端和多个后端服务,提供用户认证、好友管理和实时聊天等功能。

✨ 核心特性

  • 🎨 现代化UI: 仿微信界面设计,用户体验友好
  • 🏗️ 微服务架构: 分布式设计,支持水平扩展
  • 🔐 完整认证系统: 邮箱验证、用户注册、登录管理
  • 💬 实时通讯: 支持文本、图片等多种消息类型
  • 👥 好友系统: 好友搜索、添加、管理功能
  • 🌐 多协议支持: HTTP REST + TCP + gRPC
  • 🔧 跨平台: 支持 Windows、Linux、macOS

🏛️ 系统架构

┌─────────────────┐    HTTP/TCP     ┌─────────────────┐
│   Qt Client     │◄──────────────► │   GateServer    │
│   (tinyChat)    │                 │   (HTTP API)    │
└─────────────────┘                 └─────────────────┘
                                             │ gRPC
                                             ▼
┌─────────────────┐    gRPC         ┌─────────────────┐
│  VarifyServer   │◄──────────────► │  StatusServer   │
│  (Email Verify) │                 │ (User Status)   │
└─────────────────┘                 └─────────────────┘
                                             │ gRPC
                                             ▼
                                    ┌─────────────────┐
                                    │   ChatServer    │
                                    │ (Real-time Chat)│
                                    └─────────────────┘
                                             │
                                             ▼
                                    ┌─────────────────┐
                                    │ MySQL + Redis   │
                                    │   (Database)    │
                                    └─────────────────┘

📁 项目结构

TinyChat/
├── 📱 tinyChat/              # Qt 桌面客户端
│   ├── 🎨 UI组件/            # 自定义UI控件
│   ├── 🌐 网络层/            # HTTP/TCP通信
│   ├── 👤 用户管理/          # 用户状态管理
│   └── 💬 聊天界面/          # 聊天UI组件
├── 🚪 GateServer/            # HTTP API网关
├── 💬 ChatServer/            # 实时聊天服务
├── 📊 StatusServer/          # 用户状态服务
├── ✉️ VarifyServer/          # 邮箱验证服务 (Node.js)
├── 🔧 config.ini.template    # 配置文件模板
└── 📚 docs/                  # 项目文档

About

TinyChat 是一个分布式即时通讯应用,采用微服务架构设计。项目包含基于Qt的桌面客户端和多个后端服务,提供用户认证、好友管理和实时聊天等功能。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published