5.4 使用Zinx-V0.5完成应用程序
现在我们可以基于Zinx框架完成发送msg功能的测试用例了。
Server.go
package main
import (
"fmt"
"zinx/ziface"
"zinx/znet"
)
//ping test 自定义路由
type PingRouter struct {
znet.BaseRouter
}
//Test Handle
func (this *PingRouter) Handle(request ziface.IRequest) {
fmt.Println("Call PingRouter Handle")
//先读取客户端的数据,再回写ping...ping...ping
fmt.Println("recv from client : msgId=", request.GetMsgID(), ", data=", string(request.GetData()))
//回写数据
err := request.GetConnection().SendMsg(1, []byte("ping...ping...ping"))
if err != nil {
fmt.Println(err)
}
}
func main() {
//创建一个server句柄
s := znet.NewServer()
//配置路由
s.AddRouter(&PingRouter{})
//开启服务
s.Serve()
}当前Server端是先把客户端发送来Msg解析,然后返回一个MsgId为1的消息,消息内容是"ping...ping...ping"
Client.go
这里Client客户端,模拟了一个MsgId为0的"Zinx V0.5 Client Test Message"消息,然后把服务端返回的数据打印出来。
我们分别在两个终端运行
服务端结果:
客户端结果:
好了,我们的Zinx已经成功的集成消息的封装功能了,这样我们就有Zinx的通信的基本协议标准了。
Last updated
Was this helpful?