前言:

在前面已经讲过了,项目整体的设计,和各个需要模块的介绍;所以各种所需的接口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握手成功后的回复:表示游戏房间已经进入成功。

走棋

聊天

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐