(玩具项目,还在编写完善🥺)
本项目是一个使用Boost.Asio的C++的聊天服务器/客户端项目!
期望能写出稳定、高效的服务端;同时支持分布式系统+文件传输+聊天记录持久化!
本项目用到的其他库和前置工程:
编译本项目,使用:
./build.sh
- √ 基础框架
- √ 异步网络IO
- √ 全双工收发实现
- √ 多线程并发安全
- √ 粘包处理/消息格式定义
- o 后台服务器基本功能
- √ 逻辑系统
- o 高性能:多线程处理
- × ...
- o 分布式管理
- √ 网关服务器:负责登录验证和注册功能
- √ 状态服务器:管理后台在线服务器列表、以及负载均衡
- √ 后台服务器:负责与客户端通信的具体逻辑
- × 消息持久化(MySQL)
- × 文件传输
- ...
参考了恋恋风尘的服务器架构设计:
- 前台:
- GateServer: 通过boost.beast的http服务器实现负载均衡+登录验证
- 缓存:
- Redis层:存储当前用户登录状态+已连接到的服务器
- 后台:
- Backend:通过boost.asio实现的后台服务器
- 数据库:
- Mysql:存储用户的个人资料+登录验证所需的信息