【C++】: C++基于微服务的即时通讯系统(1)

🧩 一、项目简介

这是一个基于 C++ 开发的聊天室后台服务器系统 ,采用微服务架构,支持用户注册、登录、好友管理、消息收发、文件上传下载、语音转文字等功能。

📦 代码仓库:
https://gitee.com/bitedu-tech/cpp-chatsystem


🧩 二、功能模块概览

1. 用户相关

  • 用户名/手机号注册与登录
  • 短信验证码获取
  • 用户信息获取与修改(头像、昵称、签名、手机号)

2. 好友相关

  • 好友列表获取
  • 搜索用户、发送好友申请
  • 处理好友申请(同意/拒绝)
  • 删除好友

3. 聊天相关

  • 获取聊天会话列表(单聊/群聊)
  • 创建多人会话
  • 获取群成员列表
  • 发送消息(文字、图片、文件、语音)
  • 获取历史消息(最近N条、按时间段、关键词搜索)

4. 文件相关

  • 单文件/多文件上传与下载
  • 头像、图片、语音文件存储

5. 语音识别

  • 将语音消息转换为文字

🧩 三、微服务拆分

服务名称 功能描述
🚪 网关服务 接收客户端请求,鉴权,分发到子服务
👤 用户管理 用户注册、登录、信息修改
👥 好友管理 好友列表、申请、处理、搜索、会话管理
📁 文件管理 文件上传、下载、存储
💬 消息管理 消息存储、历史消息、消息搜索
🔁 转发管理 消息转发、目标用户识别
🎤 语音转换 调用语音识别SDK,语音转文字

🧩 四、通信方式

1. HTTP 通信

  • 用于客户端主动请求(如登录、发消息、上传文件)
  • 使用 Protobuf 格式传输数据

2. WebSocket 通信

  • 用于服务端主动推送(如新消息、好友申请通知)
  • 客户端建立长连接并发送身份验证

🧩 五、使用的技术栈

类别 技术/框架
网络通信 brpc, cpp-httplib, websocketpp
序列化 protobuf
数据库 MySQL(业务数据), Redis(会话管理)
消息队列 RabbitMQ
搜索存储 Elasticsearch(消息搜索)
日志 spdlog
测试 gtest
部署 Docker, CMake
云服务 百度语音识别、阿里云短信

🧩 六、部分接口定义(Protobuf示例)

1. 用户注册请求

cpp 复制代码
message UserRegisterReq {
    string request_id = 1;
    string nickname = 2;
    string password = 3;
    string verify_code_id = 4;
    string verify_code = 5;
}

2. 发送消息请求

cpp 复制代码
message NewMessageReq {
    string request_id = 1;
    string chat_session_id = 4;
    MessageContent message = 5;
}

3. 文件上传请求

cpp 复制代码
message PutSingleFileReq {
    string request_id = 1;
    FileUploadData file_data = 4;
}

🧩 七、服务发现与注册

每个子服务(如用户服务、好友服务)在启动时向 Etcd 注册自己的地址,网关通过服务名称(如 /service/user)发现可用服务实例。


🧩 八、总结

该项目是一个功能完整、架构清晰的分布式聊天系统 ,涵盖了从用户管理到实时通信、文件处理、语音识别等多个方面,适合学习C++服务端开发微服务架构实时通信系统的设计与实现。

相关推荐
blasit7 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
stark张宇1 天前
微服务架构必备:Gin + gRPC + Consul + Nacos + GORM 打造用户服务
微服务·gin·grpc
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛3 天前
delete又未完全delete
c++
端平入洛4 天前
auto有时不auto
c++
阿里云云原生5 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生5 天前
阿里云微服务引擎 MSE 及 API 网关 2026 年 1 月产品动态
微服务
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1235 天前
matlab画图工具
开发语言·matlab