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