C++基于websocket的多用户网页五子棋 ---- 整合封装服务器模块设计实现

前言:

在前面已经讲过了,项目整体的设计,和各个需要模块的介绍;所以各种所需的接口api都完成,现在需要把他们整合起来,搭建一个服务器模块,这个模块是对外提供服务器接口的;需要这个服务器模块,进行完成服务器的搭建;

服务器模块,是对当前所实现的所有模块的一个整合,并进行服务器搭建的一个模块,最终封装实现出一个gobang_server的服务器模块类,向外提供搭建五子棋对战服务器的接口。通过实例化的对象可以简便的完成服务器的搭建。

服务器的整合实现的思路:

  1. 网络通信接口的设计
    收到一个什么格式的数据,代表了什么样的请求,应该给与什么样的业务处理及响应

  2. 开始搭建服务器(就是整合一个sever,把各种接口整合到一起)

  3. 搭建websocket服务器,实现网络通信( wsserver_t _wssrv,类函数成员)

  4. 针对各种不同的请求进行不同的业务处理(整体代码思路。,中有具体讲解)

如下展示了,客户端在运行过程中所需的各种业务;

客户端的各种业务流程如图:

根据项目整体的设计,中的一个整体流程图(如下)可以整合客户端业务的流程(如下下图)

客户端业务的流程

根据不同的请求,资源。又分为静态资源请求与动态功能请求;

静态资源,在这里简单来说就是一个html页面,

动态功能,也就是服务器端所提供的代码功能服务;

整体代码思路

我们这里的思路就是回调函数,根据不同请求来分类,然后进行不同的功能调用,简单流程图如示:

写这些接口的思路:


通信接口设计

大家写的时候要看这些接口设计才能写全部的代码,当然我也是看着前人的接口设计写的;

这里通讯接口的设计是,Restful风格。

也就是定义客户端(如浏览器)和服务器之间"对话"的规则。

就像两个人交流需要约定 使用同一种语言和语法一样,客户端和服务器也需要约定好请求和响应的格式、含义以及行为
而这种交流需要约定 的风格就是restful风格,它是一种非常流行和规范的Web通信接口设计风格。

核心思想 :将网络上的所有事物(如用户、订单、一个HTML页面)都视为"资源 "。然后,通过标准的 HTTP 方法(动词)来对这些资源进行操作。

  • GET :用于获取/读取资源。

  • POST :用于创建新资源。

  • PUT :用于完整更新资源。

  • DELETE :用于删除资源。

在写代码时,需要根据这些请求和响应的格式来写对应的reg,resp的json串的内容;

举个例子,如,注册时服务器向客户端http的响应

服务器端 要发送的请求与要求的json,都是要和其是一样的;

静态资源请求

注册用户

用户登录

获得客户信息

websocket长连接协议切换请求(进入游戏大厅)

WebSocket握手成功后的回复:表示游戏大厅已经进入成功:

开始匹配对战

停止匹配

websocket长连接协议切换请求(进入游戏房间)

WebSocket握手成功后的回复:表示游戏房间已经进入成功。

走棋

聊天

相关推荐
愚戏师1 小时前
Python3 多线程
linux·运维·服务器·python
n***33351 小时前
linux redis简单操作
linux·运维·redis
n***4432 小时前
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
服务器·http·node.js
2***s6723 小时前
【Go】Go语言基础学习(Go安装配置、基础语法)
服务器·学习·golang
xuchaoxin13753 小时前
cdn节点代理的副作用@fail2ban对接cdn封锁恶意请求ip@fail2ban封锁ip有效性问题
运维·网络·cdn·cloudflare
q***04634 小时前
Linux环境下Tomcat的安装与配置详细指南
linux·运维·tomcat
好奇的菜鸟4 小时前
在 WSL 中安装 Docker
运维·docker·容器
x***44014 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
2301_804947585 小时前
nginx的https的搭建
运维·nginx·https