我学xingo golang服务器之-xingo_demo server.go start

启动服务器:
go run server.go

我学xingo golang服务器之-xingo_demo server.go start
上三节分别讲解学习了,xingo服务器和客户端的协议处理,包括协议的生成,协议的解析和发送,最后又学习了xingo_demo_unity3d部分的同屏玩家的AI逻辑处理过程;
(例子里面的相对比较简单,如果有怪物,战斗AI过程就比较复杂了可以参考:http://www.jb51.cc/article/p-zzavllyq-bgz.html

下面我们学习xingo_demo的server启动过程:
我把说明写在了代码里面,看起来更加清楚一些

func main() {
    //**第一步**:
    //从xingo框架哪边获取接口,新建一个tcp服务器
    s := xingo.NewXingoTcpserver()

    //**第二步**:
    //客户端请求的api_x,x=数字,手动添加进去,
    /*在开发中会有多个不同类型的aip_xxx的Router,所以采用了手动添加*/
    TestRouterObj := &api.TestRouter{}
    s.AddRouter(TestRouterObj)
    //add api ---------------end

    //**第三步**:
    //regest callback
    //注册客户端 连接和断开连接的监听事件
    utils.GlobalObject.OnConnectioned = DoConnectionMade
    utils.GlobalObject.OnClosed = DoConnectionLost

    //**第四步**:
    //正式启动服务器
    s.Serve()
}

这里的第四步: s.Serve() 就是启动服务器:

//启动函数
func (this *Server) Serve() { this.Start() this.WaitSignal() }

现在分解一下服务器的启动过程:

可以看到xingo_demo用的是Tcp服务,s.Serve()启动;

下一节我们看看xingo的初始化过程

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...