You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
52 lines
1.2 KiB
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/aceld/zinx/ziface"
|
|
"github.com/aceld/zinx/znet"
|
|
)
|
|
|
|
//ping test 自定义路由
|
|
type PingRouter struct {
|
|
znet.BaseRouter
|
|
}
|
|
|
|
//Ping 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(0, []byte("ping...ping...ping"))
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|
|
|
|
type HelloZinxRouter struct {
|
|
znet.BaseRouter
|
|
}
|
|
|
|
//HelloZinxRouter Handle
|
|
func (this *HelloZinxRouter) Handle(request ziface.IRequest) {
|
|
fmt.Println("Call HelloZinxRouter Handle")
|
|
//先读取客户端的数据,再回写ping...ping...ping
|
|
fmt.Println("recv from client : msgId=", request.GetMsgID(), ", data=", string(request.GetData()))
|
|
|
|
err := request.GetConnection().SendMsg(1, []byte("Hello Zinx Router V0.8"))
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
//创建一个server句柄
|
|
s := znet.NewServer()
|
|
|
|
//配置路由
|
|
s.AddRouter(0, &PingRouter{})
|
|
s.AddRouter(1, &HelloZinxRouter{})
|
|
|
|
//开启服务
|
|
s.Serve()
|
|
}
|