aceld
6 years ago
9 changed files with 148 additions and 45 deletions
-
2ziface/iconnnection.go
-
11ziface/irequest.go
-
11ziface/irouter.go
-
2ziface/iserver.go
-
36znet/connection.go
-
16znet/request.go
-
13znet/router.go
-
44znet/server.go
-
58znet/server_test.go
@ -0,0 +1,11 @@ |
|||||
|
package ziface |
||||
|
|
||||
|
/* |
||||
|
IRequest 接口: |
||||
|
实际上是把客户端请求的链接信息 和 请求的数据 包装到了 Request里 |
||||
|
*/ |
||||
|
type IRequest interface{ |
||||
|
GetConnection() IConnection //获取请求连接信息
|
||||
|
GetData() []byte //获取请求消息的数据
|
||||
|
} |
||||
|
|
@ -0,0 +1,11 @@ |
|||||
|
package ziface |
||||
|
|
||||
|
/* |
||||
|
路由接口, 这里面路由是 使用框架者给该链接自定的 处理业务方法 |
||||
|
路由里的IRequest 则包含用该链接的链接信息和该链接的请求数据信息 |
||||
|
*/ |
||||
|
type IRouter interface{ |
||||
|
PreHandle(request IRequest) //在处理conn业务之前的钩子方法
|
||||
|
Handle(request IRequest) //处理conn业务的方法
|
||||
|
PostHandle(request IRequest) //处理conn业务之后的钩子方法
|
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
package znet |
||||
|
|
||||
|
import "zinx/ziface" |
||||
|
|
||||
|
type Request struct { |
||||
|
conn ziface.IConnection //已经和客户端建立好的 链接
|
||||
|
data []byte //客户端请求的数据
|
||||
|
} |
||||
|
//获取请求连接信息
|
||||
|
func(r *Request) GetConnection() ziface.IConnection { |
||||
|
return r.conn |
||||
|
} |
||||
|
//获取请求消息的数据
|
||||
|
func(r *Request) GetData() []byte { |
||||
|
return r.data |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package znet |
||||
|
|
||||
|
import "zinx/ziface" |
||||
|
|
||||
|
//实现router时,先嵌入这个基类,然后根据需要对这个基类的方法进行重写
|
||||
|
type BaseRouter struct {} |
||||
|
|
||||
|
//这里之所以BaseRouter的方法都为空,
|
||||
|
// 是因为有的Router不希望有PreHandle或PostHandle
|
||||
|
// 所以Router全部继承BaseRouter的好处是,不需要实现PreHandle和PostHandle也可以实例化
|
||||
|
func (br *BaseRouter)PreHandle(req ziface.IRequest){} |
||||
|
func (br *BaseRouter)Handle(req ziface.IRequest){} |
||||
|
func (br *BaseRouter)PostHandle(req ziface.IRequest){} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue