Zinx
  • Zinx--Golang轻量级并发服务器框架
  • 一、引言
    • 1、写在前面
    • 2、初探Zinx架构
  • 二、初识Zinx框架
    • 1. Zinx-V0.1-基础Server
    • 2.Zinx-V0.2-简单的连接封装与业务绑定
  • 三、Zinx框架基础路由模块
    • 3.1 IRequest 消息请求抽象类
    • 3.2 IRouter 路由配置抽象类
    • 3.3 Zinx-V0.3-集成简单路由功能
    • 3.4 Zinx-V0.3代码实现
    • 3.5 使用Zinx-V0.3完成应用程序
  • 四、Zinx的全局配置
    • 4.1 Zinx-V0.4增添全局配置代码实现
    • 4.2 使用Zinx-V0.4完成应用程序
  • 五、Zinx的消息封装
    • 5.1 创建消息封装类型
    • 5.2 消息的封包与拆包
    • 5.3 Zinx-V0.5代码实现
    • 5.4 使用Zinx-V0.5完成应用程序
  • 六、Zinx的多路由模式
    • 6.1 创建消息管理模块
    • 6.2 Zinx-V0.6代码实现
    • 6.3 使用Zinx-V0.6完成应用程序
Powered by GitBook
On this page
  • A) 创建抽象IRequest层
  • B) 实现Request类

Was this helpful?

  1. 三、Zinx框架基础路由模块

3.1 IRequest 消息请求抽象类

我们现在需要把客户端请求的连接信息 和 请求的数据,放在一个叫Request的请求类里,这样的好处是我们可以从Request里得到全部客户端的请求信息,也为我们之后拓展框架有一定的作用,一旦客户端有额外的含义的数据信息,都可以放在这个Request里。可以理解为每次客户端的全部请求数据,Zinx都会把它们一起放到一个Request结构体里。

A) 创建抽象IRequest层

在ziface下创建新文件irequest.go。

zinx/ziface/irequest.go

package ziface

/*
    IRequest 接口:
    实际上是把客户端请求的链接信息 和 请求的数据 包装到了 Request里
*/
type IRequest interface{
    GetConnection() IConnection    //获取请求连接信息
    GetData() []byte            //获取请求消息的数据
}

不难看出,当前的抽象层只提供了两个Getter方法,所以有个成员应该是必须的,一个是客户端连接,一个是客户端传递进来的数据,当然随着Zinx框架的功能丰富,这里面还应该继续添加新的成员。

B) 实现Request类

在znet下创建IRequest抽象接口的一个实例类文件request.go

zinx/znet/request.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类创建好了,稍后我们会用到它。

Previous三、Zinx框架基础路由模块Next3.2 IRouter 路由配置抽象类

Last updated 6 years ago

Was this helpful?