程序聚合 软件案例 c++基于微服务的即时通讯系统

c++基于微服务的即时通讯系统

2026-01-16 14:52:52
行业:社交
载体:Windows应用
技术:C++、Qt、Docker、MySQL

业务和功能介绍

在聊天室项目的功能设计中,包含了以下功能:
1. 用户注册:用户输入用户名(昵称),以及密码进行用户名的注册
2. 用户登录:用户通过用户名和密码进行登录
3. 短信验证码获取:当用户通过手机号注册或登录的时候,需要获取短信验证码
4. 手机号注册:用户输入手机号和短信验证码进行手机号的用户注册
5. 手机号登录:用户输入手机号和短信验证码进行手机号的用户登录
6. 用户信息获取:当用户登录之后,获取个人信息进行展示
7. 头像修改:设置用户头像
8. 昵称修改:设置用户昵称
9. 签名修改:设置用户签名
10. 手机号修改:修改用户的绑定手机号
11. 好友列表的获取:当用户登录成功之后,获取自己好友列表进行展示
12. 申请好友:搜索用户之后,点击申请好友,向对方发送好友申请
13. 待处理申请的获取:当用户登录成功之后,会获取离线的好友申请请求以待处理
14. 好友申请的处理:针对收到的好友申请进行同意/拒绝的处理
15. 删除好友:删除当前好友列表中的好友
16. 用户搜索:可以进行用户的搜索用于申请好友
17. 聊天会话列表的获取:每个单人/多人聊天都有一个聊天会话,在登录成功后可以
获取聊天会话,查看历史的消息以及对方的各项信息
18. 多人聊天会话的创建:单人聊天会话在对方同意好友时创建,而多人会话需要调
用该接口进行手动创建
19. 聊天成员列表的获取:多人聊天会话中,可以点击查看群成员按钮,查看群成员
信息
20. 发送聊天消息:在聊天框输入内容后点击发送,则向服务器发送消息聊天请求
21. 获取历史消息:
a. 获取最近 N 条消息:用于登录成功后,点击对方头像打开聊天框时显示最近的消息
b. 获取指定时间段内的消息:用户可以进行聊天消息的按时间搜索
22. 消息搜索:用户可以进行聊天消息的关键字搜索
23. 文件的上传
a. 单个文件的上传:这个接口基本用于后台部分,收到文件消息后将文件数据转发给文 件子服务进行存储
b. 多个文件的上传:这个接口基本用于后台部分,收到文件消息后将文件数据转发给文件子服务进行存储
24. 文件的下载
a. 单个文件的下载:在后台用于获取用户头像文件数据,以及客户端用于获取文件/语音/图片消息的文件数据
b. 多个文件的下载:在后台用于大批量获取用户头像数据(比如获取用户列表的时候),以及前端的批量文件下载
25. 语音消息的文字转换:客户端进行语音消息的文字转换。
除了以上的与客户端之间交互的功能之外,还包含一些服务器后台内部所需的功能:
1. 消息的存储:用于将文本消息进行存储起来,以便于进行消息的搜索,以及离线
消息的存储。
2. 文件的存储:用于存储用户的头像文件,以及消息中的文件/图片/语音文件数据。
3. 各项用户,好友,会话数据的存储管理

项目实现

基于 C++ 实现⼀个客⼾端-服务器结构的聊天程序.
• 客⼾端: 基于 Qt 实现.
• 服务器: 基于 C++ 的分布式微服务架构 + 主流后端组件.
该项⽬在设计的时候采⽤微服务框架设计,指将⼀个⼤的业务拆分称为多个⼦业务,分别在多台不同的机器节点上提供对应的服务,由⽹关服务统⼀接收多个客⼾端的各种不同请求,然后将请求分发到不同的⼦服务节点上进⾏处理,获取响应后,再转发给客⼾端。
技术要点:
gflags:针对程序运⾏所需的运⾏参数解析/配置⽂件解析框架。
gtest:针对程序编写到⼀定阶段后,进⾏的单元测试框架。
spdlog:针对项⽬中进⾏⽇志输出的框架。
protobuf:针对项⽬中的⽹络通信数据所采⽤的序列化和反序列化框架。
brpc:项⽬中的rpc调⽤使⽤的框架。
redis:⾼性能键值存储系统,⽤于项⽬中进⾏⽤⼾登录会话信息的存储管理。
mysql:关系型数据库系统,⽤于项⽬中的业务数据的存储管理。
ODB:项⽬中mysql数据库操作的ORM框架(Object-Relational Mapping,对象关系映射)
Etcd:分布式、⾼可⽤的⼀致性键值存储系统,⽤于项⽬中实现服务注册与发现功能的框架。
cpp-httplib:⽤于搭建简单轻量HTTP服务器的框架。
websocketpp:⽤于搭建Websocket服务器的框架。
rabbitMQ:⽤于搭建消息队列服务器,⽤于项⽬中持久化消息的转发消费。
elasticsearch:⽤于搭建⽂档存储/搜索服务器,⽤于项⽬中历史消息的存储管理
语⾳云平台:采⽤百度语⾳识别技术云平台实现语⾳转⽂字功能。
短信云平台:采⽤阿⾥云短信云平台实现⼿机短信验证码通知功能。
cmake:项⽬⼯程的构建⼯具。
docker:项⽬⼯程的⼀键式部署⼯具。
服务拆分:
⼊⼝⽹关服务器:主要⽤于与客⼾端直接交互,接收客⼾端的各项请求提供服务。
⽤⼾管理⼦服务:主要⽤于管理⽤⼾的数据,以及关于⽤⼾信息的各项操作。
好友管理⼦服务:主要⽤于管理好友与聊天会话管理相关的数据与操作。
转发管理⼦服务:主要⽤于封装消息进⾏转存,然后告诉⽹关服务器⼀条消息应该发给谁。
消息存储⼦服务:主要⽤于进⾏消息元信息的存储与搜索功能。
⽂件管理⼦服务:主要⽤于管理系统中⽂件类型数据的存储,⽐如⽤⼾头像,⽂件消息等。
语⾳转换⼦服务:⽤于调⽤语⾳识别SDK,进⾏语⾳识别,将语⾳转换为⽂字。
项目完成说明:
本项目由本人独立完成。

示例图片视频


橙子师兄
30天前活跃
方向: 后端-C++、
交付率:100.00%
相似推荐
爬取boss平台数据简历分析-ai职选
一、立项背景和目标 — 讲了求职者面临的海投回复率低、信息分散、缺乏量化评估三个痛点,以及 AI 职选如何解决这些问题。 二、软件功能与核心功能模块 — 分五个模块说明: - 数据采集模块(公司详情页/职位详情页/列表页三种采集方式) - 数据管理模块(暗色主题后台、批量更新、CSV 导出) - AI 对话模块(多模型、流式输出、语音输入、文件上传) - AI 数据分析模块(行业分析、薪资分析、报告生成) - 简历优化与概率评估模块(四步流程、三维度评分) 三、业务流程与功能路径 — 分四个流程描述: - 采集业务流程(从打开网页到数据存储的完整路径) - AI 分析业务流程(勾选→分析→出报告) - AI 对话业务流程(配置模型→提问→流式回复) - 简历优化业务流程(输入简历→选目标→AI优化→概率评分)
魔方报表系统 (Mocube Report System)
魔方报表管理系统是一套面向教育机构的全栈数据管理平台。系统涵盖报表设计(可视化字段拖拽配置)、数据收集(在线填报与附件上传)、多级审批流程(支持印章选择与审批意见)、统计分析(图表展示与 Excel 导出)、考试测评(自动计分与成绩管理)以及系统管理(用户、角色、组织、权限的精细化配置)六大核心模块。适用于学校、教育局等机构的数据上报、绩效考核、问卷调研等场景,实现从表单设计到数据审核的全流程线上化管理。
NW低代码平台
● 项目描述: 一款面向企业内部和客户的企业级低代码平台,旨在通过可视化拖拽和配置的方式,快速构建OA、CRM、ERP等各类中后台管理系统。平台核心包含表单设计器、流程引擎、仪表盘、权限管理等模块,极大降低了开发门槛,提升了业务需求的交付速度。
印刷报价系统
当前中小印刷企业及商户普遍依赖人工核算报价,存在报价效率低、误差大、标准不统一等问题,且新人上手难、客户流失率高,业务与客户数据缺乏数字化管理,难以支撑企业精细化经营。为解决行业报价痛点,特立项开发印刷报价系统。 项目旨在搭建标准化智能报价体系,支持参数配置、智能报价、单据及客户管理、数据统计与权限管控,可实现快速精准报价、数据统一留存。有效提升业务办理效率,规范经营流程,为企业成本管控和业务优化提供数字化支撑。
可配置化多类型Agent智能体管理后台
核心业务场景(业务价值) 1. 零代码快速定制多类型智能体场景 针对企业不同岗位、不同业务线的差异化AI需求,摆脱传统依赖算法开发、代码迭代的落地模式。业务人员可通过可视化配置方式,快速搭建专属智能体,覆盖知识库问答Agent、办公自动化Agent、数据处理Agent、合规审核Agent、客服接待Agent、流程调度Agent等多种类型。 2. 企业多智能体统一管控与资源复用场景 解决企业多AI智能体分散部署、独立运行、资源无法互通、能力无法复用的问题。平台汇聚所有业务智能体,实现统一注册、统一管理、统一调度、统一运维。已配置的模型能力、工具插件、知识资源、流程模板可一键复用、快速复刻,支持同类型业务场景批量复制部署,大幅提升企业AI应用的迭代效率与复用率。 3. 智能体业务流程自动化协同场景 支持单智能体独立作业与多智能体联动协同,可配置串联、并联、分支判断等业务逻辑,搭建完整的AI自动化工作流。可实现“知识检索-数据分析-内容生成-合规校验-报表输出-消息推送”的全链路自动化,替代传统人工串联多系统、多工具的重复工作,适配企业复杂、长链路的常态化办公与业务流程。 平台核心功能模块 1. 可视化可配置智能体搭建模块 平台核心核心能力,支持零代码/低代码可视化搭建各类AI Agent。提供可视化配置面板,支持基础信息自定义、角色人设配置、Prompt模板编辑、模型参数可调、知识库绑定、工具插件选配、应答规则设置、上下文阈值配置等功能。支持自由组合能力模块,可快速生成适配不同业务的专属智能体,无需研发介入,业务自主即可完成配置、调试、上线全流程操作。 2. 多类型智能体统一管理模块 支持全品类智能体统一接入与分类管理,涵盖RAG知识库问答Agent、工具调用自动化Agent、数据解析处理Agent、合规审核Agent、对话交互Agent、多智能体协同工作流等多种类型。提供智能体列表、状态管理、版本管理、上下线管控、分类标签、资源归属配置能力,支持单个智能体精细化编辑与批量管理,实现企业所有AI智能体的集约化管控。 3. 智能体插件与工具生态模块 内置丰富的通用业务工具插件库,包含文档处理、数据统计、文本生成、格式转换、内容审核、报表生成、消息推送等常用工具,支持一键挂载至对应智能体。同时支持自定义插件接入、第三方工具对接、私有业务接口适配,可根据企业个性化业务需求持续拓展工具生态,让智能体能力可无限迭代、按需拓展。 4. 多智能体协同工作流配置模块 支持可视化拖拽搭建多智能体协同工作流,可自定义任务拆解逻辑、执行顺序、条件分支、循环调度、结果回调规则。实现多个不同能力的智能体联动协作,完成单一智能体无法覆盖的复杂复合型业务任务,适配企业复杂办公流程、业务审核流程、数据处理流、项目复盘流程等场景,真正实现AI全流程自主作业。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服