独立游戏开发学习(四)-编写tcp交互中间层

接着上一篇,我们要开始处理tcp的数据交互了,为了方便我们调用到想要用的逻辑,我们需要用一个中间层包一下,并且声明出常量来标识需要调用的是什么逻辑。

上一篇

1、声明types类用于归纳常量标识

新建一个types.js

2、声明pack类用于处理客户端的请求与响应数据

新建一个pack.js
这里声明的类为静态属性,方便后期处理

3、创建Controller层,处理tcp的请求与响应

首先创建BaseController类,所有对应的类源自这里继承,可以存一些全局属性。我把types扔了进去,方便后续调用
requestCode为标识,用于归纳管理用户在哪种状态的操作(对应 RequestCode: {
RequestNone: 0,
User: 1, // 用户
Room: 2, // 房间
Game: 3, //游戏
},)

image

后续创建对应的三个类

4、创建ControllerManager中间层处理tcp请求

创建ControllerManager,并且在client类引入,传入客户端的数据,和client本身this

5、开始书写tcp逻辑处理

先声明pack。并且将客户端传来的值对象化并且赋值给requestPack。如果解析JSON失败则返回失败状态


补全逻辑===========

添加client类中的send方法,向客户端发送数据
image

添加types.js中抛出的错误信息
image

6、调试

以上逻辑写完了,我们开始调用试试
run下test/clint_socket.js

image

额。乱码了,我们把client.setEncoding(‘binary’);改一下
image
这下对了,我们把请求的方式改成对应的code
image
image
好的 我们添加一下对应的方法,并且修改一下clint_socket
image

image

再run一下。
image

好了 搞定了。

之后我们就可以愉快的在每个模块中添加对应的功能了

对应的GitHub地址为:GitHub
该系列的其他篇幅:
独立游戏开发学习(一)
独立游戏开发学习(二)-Stable Diffusion的运用](独立游戏开发学习(二)-Stable Diffusion的运用 - #18,来自 huaqiesf)
独立游戏开发学习(三)-联机服务器的搭建tcp篇 ](独立游戏开发学习(三)-联机服务器的搭建tcp篇 - #4,来自 handsome)

1 个赞

来了!支持大佬

:kissing_heart:加油共勉啊,一起学习