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

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

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

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

三个大模块说明

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

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

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

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

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

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

服务器角度的流程图

相关推荐
tudousisi2229 分钟前
CSP 第3题训练 Day 5|CSP202509C HTTP 头信息|Blog A
c++
闻缺陷则喜何志丹1 小时前
【动态规划】P10726 [GESP202406 八级] 空间跳跃|普及+
c++·算法·动态规划·洛谷
Chester_19991 小时前
CSP202312C.树上搜索
开发语言·数据结构·c++·蓝桥杯·stl
见叶之秋2 小时前
【C++】String类的使用(含模拟实现)
java·开发语言·c++
wuminyu3 小时前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
xxwxx__4 小时前
深入理解 C++ 继承:从基础语法到底层原理全解析
c++
键盘会跳舞5 小时前
【C++多线程】多线程性能调优:伪共享、缓存行对齐与吞吐优化
c++·多线程·多线程调优
学习星球5 小时前
编辑距离——二维 DP 的“最小操作“艺术
c++·leetcode·java-consul
OPEN-F5 小时前
ROS2系列教程:tf2坐标变换详解(C++/Python)
开发语言·c++·python
暖焰核心5 小时前
迭代器与模板的结合——stl的list
c++·windows·list