Zinx-V0.3 router

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框架中
  1. iserver模块需要添加一个接口
  2. server增加一个成员
  3. 将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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值