代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"gitee.com/yang-chengxian/empty_zinx/src/ziface"
"gitee.com/yang-chengxian/empty_zinx/src/znet"
)
/*
基于Zinx开发的应用程序
*/
// PingRouter ping test 自定义路由
type PingRouter struct {
znet.BaseRouter
}
// Handle Test Handle
func (pr *PingRouter) Handle(request ziface.IRequest) {
fmt.Println("Call ping Handle...")
// 先读取客户端的数据, 再回写ping...ping..ping
fmt.Println("recv from client: msgID = ", request.GetMessageID(),
",Data = ", string(request.GetMessageBody()))
err := request.GetConnection().SendMsg(200, []byte("ping...ping...ping"))
if err != nil {
fmt.Println(err)
}
}
// HelloEmpty hello test 自定义路由
type HelloEmpty struct {
znet.BaseRouter
}
// Handle Test Handle
func (pr *HelloEmpty) Handle(request ziface.IRequest) {
fmt.Println("Call Hello Handle...")
// 先读取客户端的数据, 再回写ping...ping..ping
fmt.Println("recv from client: msgID = ", request.GetMessageID(),
",Data = ", string(request.GetMessageBody()))
err := request.GetConnection().SendMsg(201, []byte("Hello Welcome to Empty"))
if err != nil {
fmt.Println(err)
}
}
// DoConnectionBegin 创建连接之后的钩子函数
func DoConnectionBegin(conn ziface.IConnection) {
fmt.Println("====> DoConnectionBegin is called")
err := conn.SendMsg(202, []byte("DoConnection Begin"))
if err != nil {
fmt.Println(err)
}
// 给当前的连接设置一些属性
fmt.Println("Set conn Properties")
conn.SetProperty("Name", "SLAKM")
conn.SetProperty("Poe", "https://poe.com/Assistant")
}
// DoConnectionClose 创建连接之后的钩子函数
func DoConnectionClose(conn ziface.IConnection) {
fmt.Println("====> DoConnectionClose is called")
fmt.Println("conn ID =", conn.GetConnID())
// 获取连接属性
name, err := conn.GetProperty("Name")
if err != nil {
fmt.Println(err)
}
poe, err := conn.GetProperty("Poe")
if err != nil {
fmt.Println(err)
}
fmt.Println("conn Name =", name)
fmt.Println("conn Poe =", poe)
}
func main() {
// 创建一个Server句柄, 使用Zinx的api
s := znet.NewServer("src/demo/ZinxV0.9/config/zinx.json")
// 注册连接Hook钩子函数
s.SetOnConnStart(DoConnectionBegin)
s.SetOnConnClose(DoConnectionClose)
// 给当前zinx框架添加一个自定义的router
s.AddRouter(0, &PingRouter{})
// 给当前zinx框架添加一个自定义的router
s.AddRouter(1, &HelloEmpty{})
// 启动Server
s.Run()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。