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?