C++基于websocket的多用户网页五子棋 --- 项目设计

前面已经了解过此项目主要依赖的库,现在就需要对其进行结构设计,功能模块划分,让其能够实现我们需要的功能;

我们要实现的是一个在线五子棋对战服务器,提供用户通过 浏览器进行用户注册,登录,以及实时匹配,对战,聊天等功能;所以若宏观的分,可以分为三大块,数据管理模块,前端界面模块与业务处理模块;

当然,如果要实现上述功能,那么就需要对业务处理模块再次进行细分为多个模块来实现各个功能;接下来就让我们看看如何划分吧;
如图,是对项目功能的粗略图解

三个大模块说明

  • 数据管理模块:基于Mysql数据库进行用户数据的管理。
  • 前端界面模块:基于JS实现前端页面注册,登录,游戏大厅,游戏房间)的动态控制以及与服务器通信。
  • 业务处理模块:搭建WebSocket服务器与客户端进行通信,接收请求并进行业务处理。

业务处理模块的子模块划分

  • 网络通信模块:基于websocketpp库实现Http&WebSocket服务器的搭建,提供网络通信功能。
  • 会话管理模块:对客户端的连接进行cookie&session管理,实现http短连接时客⼾端⾝份识别功 能。

注意的是:此项目是基于网页cookie 来进行用户信息管理的,所以,登入游戏时,不同用户要用不同的浏览器;否则,cookie信息会重复

  • 在线管理模块:对进入游戏大厅与游戏房间中用户进行管理,提供用户是否在线以及获取用户连接 的功能。
  • 房间管理模块:为匹配成功的用户创建对战房间,提供实时的五子棋对战与聊天业务功能。
  • 用户匹配模块:根据天梯分数不同进行不同层次的玩家匹配,为匹配成功的玩家创建房间并加入房间。

站在玩家,用户角度的流程图如实:

服务器角度的流程图

相关推荐
Mapleay4 分钟前
CLion IDE 使用
c++
兵哥工控9 分钟前
MFC用高精度计时器实现五段时序控制的改进
c++·mfc
会编程的土豆21 分钟前
日常做题 vlog
数据结构·c++·算法
22信通小白25 分钟前
USRP初学者使用手册(基础配置及bug记录)——Linux+Clion(单台X310收发)
linux·运维·c++·5g·bug·信息与通信
郭涤生1 小时前
C++模板元编程理论基础简介
c++
CheerWWW1 小时前
C++学习笔记——栈内存与堆内存、宏、auto、std::array
c++·笔记·学习
WBluuue1 小时前
数据结构与算法:二项式定理和二项式反演
c++·算法
yashuk1 小时前
C语言 vs. C++ ,哪个更适合初学者?
c语言·c++·面向对象编程·初学者·学习路径
-许平安-2 小时前
MCP项目笔记十(客户端 MCPClient)
c++·笔记·ai·raii·mcp·pluginapi·plugin system
一只旭宝2 小时前
【C++ 入门精讲2】函数重载、默认参数、函数指针、volatile | 手写笔记(附完整代码)
c++·笔记