启动服务器:
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的初始化过程