3.3 Zinx-V0.3-集成简单路由功能

A) IServer增添路由添加功能

我们需要给IServer类,增加一个抽象方法AddRouter,目的也是让Zinx框架使用者,可以自定一个Router处理业务方法。

zinx/ziface/irouter.go

package ziface

//定义服务器接口
type IServer interface{
    //启动服务器方法
    Start()
    //停止服务器方法
    Stop()
    //开启业务服务方法
    Serve()
    //路由功能:给当前服务注册一个路由业务方法,供客户端链接处理使用
    AddRouter(router IRouter)
}

B) Server类增添Router成员

有了抽象的方法,自然Server就要实现,并且还要添加一个Router成员.

zinx/znet/server.go

然后NewServer()方法, 初始化Server对象的方法也要加一个初始化成员

C) Connection类绑定一个Router成员

zinx/znet/connection.go

D) 在Connection调用注册的Router处理业务

zinx/znet/connection.go

这里我们在conn读取完客户端数据之后,将数据和conn封装到一个Request中,作为Router的输入数据。

然后我们开启一个goroutine去调用给Zinx框架注册好的路由业务。

Last updated

Was this helpful?