程序聚合 软件案例 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%
相似推荐
某企业管理平台
1. 企业人员管理 支持多级组织架构(集团/分公司/部门)的树形维护,员工档案全生命周期管理(入职、转正、调动、离职),支持批量导入导出,自定义字段扩展(如工号、社保基数、紧急联系人)。提供岗位职级体系与职务序列管理,并与权限系统联动,实现基于部门、角色、岗位的细粒度数据隔离。 2. 绩效管理 支持OKR与KPI双模式,可配置考核周期(月度/季度/年度)、评分权重(自评+上级+360环评)。提供考核模板库,目标分解与对齐视图,自动生成绩效等级(S/A/B/C/D)。集成可视化看板,展示部门均分、个人趋势、考核完成率,并支持绩效申诉流程与结果归档。 3. 工作流管理 基于BPMN 2.0标准设计流程引擎,支持串行/并行/会签/或签/条件分支等复杂节点。提供可视化流程设计器,可动态调整审批人、抄送人、超时提醒。流程实例全链路追踪(待办/已办/委托/转办),支持催办、撤回、驳回重填,并与消息中心联动,实时推送待办通知。 4. 请假管理 涵盖年假、事假、病假、婚假、产假、调休等全假种类型,自动计算剩余额度(支持按自然年/周年/自定义周期)。内置假期规则引擎(如最小请假单位、扣减优先级、调休兑换比例)。申请时自动校验余额与冲突,关联工作流完成多级审批,审批通过后自动同步至考勤与薪资系统。
工作状态监测
一、立项背景和目标 在数字化工位管理、智慧办公与特种作业安防场景中,传统考勤系统仅能记录出入打卡,无法实时感知员工在岗状态及异常作业行为。本项目基于瑞芯微高性能边缘计算平台 RK3588,构建一套边缘侧低功耗、高实时性的“人脸识别与工作状态智能监测系统”,实现无感身份核验、在离岗检测及专注度/违规作业状态的边缘端一体化实时分析。 二、软件功能与核心功能模块 1. 高性能视频流采集与预处理模块:支持多路 RTSP/MIPI-CSI 高清工业摄像头视频流接入,利用硬件编解码单元(MPP)完成硬解与图像色彩空间转换(RGA)。 2. 边缘端人脸识别与活体检测模块:基于深度学习模型实现人脸快速检测、关键点对齐、RGB+红外双目静默活体防伪及本地特征库千万级特征向量秒级比对。 3. 工作状态与行为分析引擎:结合人体姿态估计与工位 ROI 区域检测,实时分析在岗/离岗时长、低头玩手机、脱岗疲劳打瞌睡及异常离席等工位状态。 4. 告警联动与边缘数据上报:支持状态异常事件触发抓拍、本地低延时告警,并通过 MQTT/HTTP 将脱敏状态数据结构化上报至企业中台。 三、业务流程与功能路径 摄像头实时输入视频流 -> RK3588 硬件解码与 RGA 图像裁剪缩放 -> NPU 驱动执行人脸识别算法完成身份绑定 -> 并行推理工位人体姿态与行为检测模型 -> 业务逻辑状态机聚合判定工位状态 -> 触发本地声光/日志告警并异步上报管控后台。
智能CRM系统
客户与联系人管理:支持企业客户(账户)和个人联系人(联系人)的双层数据模型,记录公司基本信息、合作历史、关键决策人、沟通记录等,支持重复数据自动合并。 线索与商机管理:支持线索的批量导入、自动分配(按区域/行业/权重)、智能评分(基于职位/行为等自动打分),商机可设置多阶段销售管道(初步沟通→需求确认→方案报价→商务谈判→赢单/输单),销售漏斗可视化。 销售自动化:自动跟进提醒、下次联系时间设置、邮件/电话沟通记录统一沉淀,支持报价、订单、合同与回款的全流程管理。 营销自动化:活动策划、邀约、签到与ROI分析,客户标签与分群管理,支持精准营销与个性化推荐。 客户服务与工单管理:售后工单的创建、流转、追踪与闭环,内置知识库支持快速响应。 数据分析与BI报表:客户画像、销售预测、业绩看板、多维度数据可视化,将原始CRM数据转化为可执行的洞察。 系统集成与扩展:支持与邮箱、电话、ERP等第三方系统的集成对接;提供PaaS层面的业务定制能力,满足不同行业客户的个性化需求。 权限与角色管理:基于RBAC的精细化权限控制,支持部门、角色、菜单、数据等多维度权限隔离
大功率变频器参数管理上位机软件
1,客户的变频器应用在各机场,有7大类300多个参数,工程师使用原始的手持式数显配置器,工作起来很麻烦,效率低、不防呆;客户希望有一个上位机程序方便实时配置参数,且可以把成套配置保存为模板,需要时能够成套灌入变频器,还希望能够实时监控一些参数的变化,以及监控故障并根据故障等级给出详细的解决方案;记录所有操作并提供一些分析工具进行分析。 2,主要三大块:1,参数设置,实时读取下位机(变频器)所有参数,允许实时设置,改变下位机(变频器)运行状态;或配置到文件,整体下发到下位机(变频器);2,监控:波形图显示指定通道变频器参数变化,可以多通道(参数);以及实时故障监控;3,参数历史:监控所有操作留档,并提供多种多维度分析工具。
EMS行业Mes系统
1,本系统上游对接企业(EMS工厂)的ERP,(定时任务)实时获取(拉取)到工单、产品(待生产)、BOM、物料等数据;针对产品工艺特点制作工艺流程(途程)后,将工艺流程实例化给工单,工单里生产的每一片PCBA的每一道工序(实际对应车间站点)都实时记录,尤其是一些测试工艺,会根据实际测试结果决定PCBA的下一道工艺是维修、报废还是继续下一阶段生产。这些实时记录的过站数据汇总后得到看板、报表数据,以及报工数据反馈给ERP。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服