{"id":24913939,"url":"https://github.com/beyondesh/wechat","last_synced_at":"2025-04-14T16:43:58.604Z","repository":{"id":273214345,"uuid":"918996067","full_name":"BeyondESH/WeChat","owner":"BeyondESH","description":"WeChat 聊天系统是一个基于分布式架构的即时通讯应用，包含服务器集群和跨平台客户端。该系统模仿了微信的核心功能，采用现代C++技术栈构建，支持用户注册、登录、好友管理、即时消息通信等功能。项目采用微服务架构设计，确保系统的高可用性、可扩展性和可维护性。","archived":false,"fork":false,"pushed_at":"2025-04-08T12:27:47.000Z","size":110559,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T13:30:30.216Z","etag":null,"topics":["boost","cpp","node-js","qt","server","wechat"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BeyondESH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-19T12:51:29.000Z","updated_at":"2025-04-08T12:27:51.000Z","dependencies_parsed_at":"2025-04-08T13:38:28.247Z","dependency_job_id":null,"html_url":"https://github.com/BeyondESH/WeChat","commit_stats":null,"previous_names":["beyondesh/wechat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeyondESH%2FWeChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeyondESH%2FWeChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeyondESH%2FWeChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeyondESH%2FWeChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BeyondESH","download_url":"https://codeload.github.com/BeyondESH/WeChat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248918344,"owners_count":21183171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boost","cpp","node-js","qt","server","wechat"],"created_at":"2025-02-02T06:15:10.928Z","updated_at":"2025-04-14T16:43:58.598Z","avatar_url":"https://github.com/BeyondESH.png","language":"C++","readme":"# WeChat 聊天系统\n\n## 项目介绍\n\nWeChat 聊天系统是一个基于分布式架构的即时通讯应用，包含服务器集群和跨平台客户端。该系统模仿了微信的核心功能，采用现代C++技术栈构建，支持用户注册、登录、好友管理、即时消息通信等功能。项目采用微服务架构设计，确保系统的高可用性、可扩展性和可维护性。\n\n## 项目结构图\n\n```mermaid\ngraph TD\n    WeChat[\"WeChat系统架构\"]\n\n    %% 主要组件\n    Server[\"服务器集群\"]\n    Storage[\"数据存储\"]\n    Client[\"客户端应用\"]\n\n    %% 服务器集群子组件\n    GateServer[\"GateServer (网关服务器)\"]\n    VerifyServer[\"VerifyServer (验证服务器)\"]\n    StatusServer[\"StatusServer (状态服务器)\"]\n    ChatServer[\"ChatServer (聊天服务器)\"]\n\n    %% 数据存储子组件\n    MySQL[\"MySQL\"]\n    Redis[\"Redis\"]\n\n    %% 客户端子组件\n    QtClient[\"Qt客户端\"]\n    Login[\"登录/注册模块\"]\n    ChatUI[\"聊天界面\"]\n    FriendManage[\"好友管理\"]\n    MessageHistory[\"消息历史查询\"]\n\n    %% 服务器功能\n    GateServerFunc[\"处理HTTP请求，验证码生成，用户注册登录\"]\n    VerifyServerFunc[\"提供身份验证服务，验证码校验\"]\n    StatusServerFunc[\"管理用户状态，ChatServer分配\"]\n    ChatServerFunc[\"处理实时消息，好友管理，聊天历史\"]\n\n    %% 数据存储功能\n    MySQLFunc[\"用户信息，好友关系，消息历史\"]\n    RedisFunc[\"令牌存储，验证码缓存，临时状态\"]\n\n    %% 连接关系\n    WeChat --\u003e Server\n    WeChat --\u003e Storage\n    WeChat --\u003e Client\n\n    %% 服务器连接\n    Server --\u003e GateServer\n    Server --\u003e VerifyServer\n    Server --\u003e StatusServer\n    Server --\u003e ChatServer\n\n    GateServer --\u003e GateServerFunc\n    VerifyServer --\u003e VerifyServerFunc\n    StatusServer --\u003e StatusServerFunc\n    ChatServer --\u003e ChatServerFunc\n\n    %% 数据存储连接\n    Storage --\u003e MySQL\n    Storage --\u003e Redis\n    MySQL --\u003e MySQLFunc\n    Redis --\u003e RedisFunc\n\n    %% 客户端连接\n    Client --\u003e QtClient\n    QtClient --\u003e Login\n    QtClient --\u003e ChatUI\n    QtClient --\u003e FriendManage\n    QtClient --\u003e MessageHistory\n```\n\n## 项目架构\n\n### 服务器架构\n\nWeChat 系统采用微服务架构，将不同功能拆分为独立的服务，通过gRPC和HTTP进行通信：\n\n1. **GateServer** - 网关服务器\n   - 处理HTTP请求\n   - 用户注册与登录\n   - 验证码生成与发送\n   - 使用Boost.Beast实现HTTP服务器\n\n2. **VerifyServer** - 验证服务器\n   - 验证码验证\n   - 提供gRPC接口供其他服务调用\n   - Redis缓存验证码\n\n3. **StatusServer** - 状态服务器\n   - 用户状态管理\n   - ChatServer负载均衡\n   - Token认证与验证\n   - gRPC服务提供\n\n4. **ChatServer** - 聊天服务器\n   - 实时消息处理\n   - 好友关系管理\n   - 消息历史记录存储\n   - 使用Boost.Asio实现TCP长连接\n\n### 通信协议\n\n- 服务间通信：gRPC (Protobuf)\n- 客户端与网关通信：HTTP\n- 客户端与聊天服务器通信：自定义TCP协议\n\n### 数据存储\n\n- **MySQL**：存储用户信息、好友关系、消息历史等持久化数据\n- **Redis**：存储验证码、Token、临时会话信息等需要高速访问的数据\n\n### 客户端架构\n\n客户端采用Qt框架开发，实现跨平台支持：\n\n- 使用Qt的信号槽机制实现异步通信\n- 采用单例模式管理全局资源\n- 基于TCP长连接实现消息的实时收发\n- HTTP请求处理用户认证和注册\n\n## 项目功能\n\n### 用户管理\n- 账号注册（用户名、密码、邮箱）\n- 邮箱验证码验证\n- 账号/邮箱登录\n- 密码重置功能\n\n### 好友管理\n- 搜索用户\n- 发送好友请求\n- 接受/拒绝好友申请\n- 好友列表显示\n\n### 即时通讯\n- 实时文本消息收发\n- 消息历史记录查询\n- 好友在线状态显示\n- 未读消息提醒\n\n### 系统功能\n- 聊天服务器负载均衡\n- 用户身份验证与授权\n- 数据安全性保障\n- 分布式服务自动发现与恢复\n\n## 项目优势\n\n### 技术优势\n1. **高性能架构**：采用C++开发，结合Boost.Asio实现高并发处理能力\n2. **分布式设计**：服务解耦，单个服务故障不影响整体系统运行\n3. **可扩展性**：各服务可独立扩展，根据负载动态调整\n4. **数据安全**：密码加密存储，通信加密，令牌验证\n5. **代码优化**：使用现代C++特性，设计模式应用，提高代码质量\n\n### 功能优势\n1. **实时通信**：基于TCP长连接，保证消息实时性和可靠性\n2. **跨平台支持**：Qt客户端支持Windows、Linux、MacOS\n3. **用户体验**：简洁直观的界面设计，操作流程优化\n4. **功能完整**：覆盖即时通讯系统的核心功能\n5. **鲁棒性**：完善的错误处理和异常机制\n\n## 技术栈\n\n### 后端\n- C++ 17\n- Boost (Beast, Asio)\n- gRPC \u0026 Protobuf\n- MySQL Connector/C++\n- Redis (hiredis)\n- nlohmann/json\n\n### 前端\n- Qt 6\n- C++\n- QSS样式表\n- Qt网络模块\n\n### 构建工具\n- CMake\n- Ninja\n- vcpkg (依赖管理)\n\n## 联系方式\n\n如有任何问题或建议，欢迎提交 Issue 或通过以下方式联系我：\n\n- Email: 1989601704@qq.com\n\n\u003cimg src=\"https://img.beyondesh.top/821bbed517b894164d494cbe9fa731d.jpg\" style=\"zoom:25%;\" /\u003e,\u003cimg src=\"https://img.beyondesh.top/79975c223324b5df82be97947dacbad.jpg\" style=\"zoom: 40%;\" /\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeyondesh%2Fwechat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeyondesh%2Fwechat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeyondesh%2Fwechat/lists"}