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

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

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

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

三个大模块说明

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

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

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

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

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

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

服务器角度的流程图

相关推荐
把我格子衫拿来5 分钟前
VTK 9.5 与 Qt 6 联合开发:从嵌入三维窗口到可维护的桌面架构
c++·python·qt·vtk·三维可视化
无忧.芙桃30 分钟前
C++语言原理与实践(十六):多态机制讲解
开发语言·c++·多态
wuminyu2 小时前
JMM学习总结:深入理解happens-before关系
java·linux·c语言·jvm·c++
xxwl5852 小时前
区域赛分类题解
c++·笔记·学习·算法
青少儿编程课堂3 小时前
蓝桥杯+全国青少年信息素养大赛+电子学会PythonC/C++考级:最长公共子序列LCS解析
c++·python·算法·bfs·信息学竞赛
代钦塔拉4 小时前
【C++/Qt 进阶】设计模式系列(2):工厂模式——从游戏角色到披萨店
c++·算法·设计模式
把我格子衫拿来6 小时前
VTK 与 Qt 的 CMake 工程怎么组织?模块、工具链与二进制兼容排错
c++·qt·vtk·cmake·工程实践
灯澜忆梦7 小时前
【面向对象编程c++】| 指针与自定义数据类型
开发语言·c++·算法
xxwl5857 小时前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
雾沉川7 小时前
Visual C++运行库合集 v105.0 安装教程
开发语言·c++·dll