多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 3.1 IRequest 消息请求抽象类 我们现在需要把客户端请求的连接信息 和 请求的数据,放在一个叫Request的请求类里,这样的好处是我们可以从Request里得到全部客户端的请求信息,也为我们之后拓展框架有一定的作用,一旦客户端有额外的含义的数据信息,都可以放在这个Request里。可以理解为每次客户端的全部请求数据,Zinx都会把它们一起放到一个Request结构体里。 ##### A\) 创建抽象IRequest层 在`ziface`下创建新文件`irequest.go`。 zinx/ziface/irequest.go ```go package ziface /* IRequest 接口: 实际上是把客户端请求的链接信息 和 请求的数据 包装到了 Request里 */ type IRequest interface{ GetConnection() IConnection //获取请求连接信息 GetData() []byte //获取请求消息的数据 } ``` 不难看出,当前的抽象层只提供了两个Getter方法,所以有个成员应该是必须的,一个是客户端连接,一个是客户端传递进来的数据,当然随着Zinx框架的功能丰富,这里面还应该继续添加新的成员。 ##### B\) 实现Request类 在znet下创建IRequest抽象接口的一个实例类文件`request.go` zinx/znet/request.go ```go package znet import "zinx/ziface" type Request struct { conn ziface.IConnection //已经和客户端建立好的 链接 data []byte //客户端请求的数据 } //获取请求连接信息 func(r *Request) GetConnection() ziface.IConnection { return r.conn } //获取请求消息的数据 func(r *Request) GetData() []byte { return r.data } ``` 好了现在我们Request类创建好了,稍后我们会用到它。