Zinx-V0.3 router
用户能够自定义自己的读写业务方法
router模块
属性
方法
PreHandle方法:用户在处理业务之前,自定义一些业务
Handle方法:业务处理的核心方法
PostHandle方法:用户处理业务之后定义的方法
上面3个方法是模板
抽象层
type IRouter interface {
PreHandle (request IRequest)
Handle (request IRequest)
PostHandle (request IRequest)
}
实现层
//将interface的方法全部实现,用户可以重写这些方法
type BaseRouter struct {
}
func (r *BaseRouter) PreHandle(request IRequest)
func (r *BaseRouter) Handle(request IRequest)
func (r *BaseRouter) PostHandle(request IRequest)
将router模块集成到zinx框架中
iserver模块需要添加一个接口server增加一个成员将router和connection关联
router传给server
-> 传给NewConnection
->connection.StartReader
抽象层
type IRouter interface {
PreHandle(r IRequest)
Handle(r IRequest)
PostHandle(r IRequest)
}
type IServer interface {
//新增
AddRouter(r IRouter)
}
实现层
type Server struct {
Router IRouter
}
func (s *Server)AddRouter(r IRouter) {
s.router = r
}
业务层
继承并实现一个BaseRouter类
s := net.NewServer()
s.AddRouter(&PingRouter{})
s.Serve()