Gonet2 游戏服务器框架解析之Agent(3)
2015-08-12 11:15
363 查看
客户端消息在Agent中的预处理流程。
Agent定义好的三种请求:
上面这段是 api.go中截取的,定义了协议号和对应消息的名称。
以req结尾的是请求,ack结尾的是回复。
还是在api.go中,定义了与请求对应的处理方法,这些方法记录在Handlers中。方法的定义在文件client_handler/handle.go中。
在协议号大于1000的另一个分支,消息被封装成了一个Game_Frame,之后转发到了Game服务器,这个对象是由grpc框架生成的。服务的接口以及数据格式定义如下:
在Game服务器中,有这样一个介绍,
所以,接下来,就要到Game服务器的分析了。
Agent定义好的三种请求:
//api.go var RCode = map[int16]string{ 0: "heart_beat_req", // 心跳包.. 1: "heart_beat_ack", // 心跳包回复 10: "user_login_req", // 登陆 11: "user_login_succeed_ack", // 登陆成功 12: "user_login_faild_ack", // 登陆失败 13: "client_error_ack", // 客户端错误 30: "get_seed_req", // socket通信加密使用 31: "get_seed_ack", // socket通信加密使用 }
上面这段是 api.go中截取的,定义了协议号和对应消息的名称。
以req结尾的是请求,ack结尾的是回复。
//api.go var Handlers map[int16]func(*Session, *packet.Packet) []byte func init() { Handlers = map[int16]func(*Session, *packet.Packet) []byte{ 0: P_heart_beat_req, 10: P_user_login_req, 30: P_get_seed_req, } }
还是在api.go中,定义了与请求对应的处理方法,这些方法记录在Handlers中。方法的定义在文件client_handler/handle.go中。
在协议号大于1000的另一个分支,消息被封装成了一个Game_Frame,之后转发到了Game服务器,这个对象是由grpc框架生成的。服务的接口以及数据格式定义如下:
syntax = "proto3"; package proto; // game definition service GameService { rpc Stream(stream Game.Frame) returns (stream Game.Frame); // 透传消息, 双向流 } message Game { enum FrameType { Message = 0; Register = 1; Unregister = 2; Kick = 3; Ping = 4; // for testing } message Frame { FrameType Type=1; bytes Message=2; int32 UserId = 3; } }
在Game服务器中,有这样一个介绍,
游戏服务器对外只提供一个接口, 即: rpc Stream(stream Game.Frame) returns (stream Game.Frame);
所以,接下来,就要到Game服务器的分析了。
相关文章推荐
- Migo收货增强
- Algorithms—129.Sum Root to Leaf Numbers
- 江苏电信欢go与省公安厅合作保无线上网安全
- CodeForces 568A. Primes or Palindromes?( 素数 + 回文数 )
- [Data Structure & Algorithm] Hash那点事儿
- GoogleGoogleGoogle!!!! 百度云资源
- golang 数组切片(一)
- Django-视图和URl配置
- django-模版
- Google Earth谷歌地球卫片下载器--可下载全球历史卫星,无偏移、高精度
- POJ 2007 Scrambled Polygon(凸包)
- DjangoWeb: 快速实现注册登录
- go-内存分配
- How To Create a Significant Goal ?
- go-内存分配器
- hdu 3635 Dragon Balls (并查集,路径压缩应用)
- hdu 3635 Dragon Balls (并查集,路径压缩应用)
- Hexagon的程序执行顺序(一)
- Singapore National Day (SG50 Golden Jubilee)
- GoLang入门5-调试我们自己写的包mymath