+
Skip to content

a18361351/cpp_chatroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cpp_chatroom

(玩具项目,还在编写完善🥺)

本项目是一个使用Boost.Asio的C++的聊天服务器/客户端项目!

期望能写出稳定、高效的服务端;同时支持分布式系统+文件传输+聊天记录持久化!

使用

本项目用到的其他库和前置工程:

编译本项目,使用:

./build.sh

当前进度

  • √ 基础框架
    • √ 异步网络IO
    • √ 全双工收发实现
    • √ 多线程并发安全
    • √ 粘包处理/消息格式定义
  • o 后台服务器基本功能
    • √ 逻辑系统
    • o 高性能:多线程处理
    • × ...
  • o 分布式管理
    • √ 网关服务器:负责登录验证和注册功能
    • √ 状态服务器:管理后台在线服务器列表、以及负载均衡
    • √ 后台服务器:负责与客户端通信的具体逻辑
  • × 消息持久化(MySQL)
  • × 文件传输
  • ...

架构设计

参考了恋恋风尘的服务器架构设计:

  • 前台:
    • GateServer: 通过boost.beast的http服务器实现负载均衡+登录验证
  • 缓存:
    • Redis层:存储当前用户登录状态+已连接到的服务器
  • 后台:
    • Backend:通过boost.asio实现的后台服务器
  • 数据库:
    • Mysql:存储用户的个人资料+登录验证所需的信息

参考

恋恋风尘官方博客C++部分

Boost.Asio网络编程教程

Boost.Asio官方文档

About

学习用C++以及Boost.asio写的一个聊天室服务器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载