Zinx-V0.3 router

    xiaoxiao2022-07-13  148

    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()
    最新回复(0)