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()