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

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

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

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

三个大模块说明

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

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

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

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

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

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

服务器角度的流程图

相关推荐
Dream it possible!1 天前
牛客周赛 Round 123_C_小红出对 (哈希表+哈希集合)
c++·哈希算法·散列表
落羽的落羽1 天前
【C++】深入浅出“图”——图的基本概念与存储结构
服务器·开发语言·数据结构·c++·人工智能·机器学习·图搜索算法
陳10301 天前
C++:string(4)
开发语言·c++
渡我白衣1 天前
计算机组成原理(8):各种码的作用详解
c++·人工智能·深度学习·神经网络·其他·机器学习
小李小李快乐不已1 天前
二叉树理论基础
数据结构·c++·算法·leetcode
仰泳的熊猫1 天前
1149 Dangerous Goods Packaging
数据结构·c++·算法·pat考试
ALex_zry1 天前
现代C++如何解决传统内存分配器的核心痛点
java·c++·spring
wangnaisheng1 天前
彩虹编码映射实现:C++与C#
c++·c#
waves浪游1 天前
进程控制(下)
linux·运维·服务器·开发语言·c++
兵哥工控1 天前
mfc两个线程的创建、启动、安全结束实例
c++·mfc·多线程·线程安全退出