连接Game服务器成功
// 子协议拆分
func HandleCltProtocolProxy(protocol2 interface{}, ProtocolData map[string]interface{}) {
switch protocol2 {
case float64(Proto_Proxy.Proxy2C_ConnDataProto):
{ // 注册协议
msg.SendGameGetPlayer(cxt.Token, ProtocolData["OpenID"].(string), cxt.ConnClient)
}
default:
glog.Info("子协议不存在")
}
}
// 子协议拆分
func HandleCltProtocol2(protocol2 interface{}, ProtocolData map[string]interface{}) {
switch protocol2 {
case float64(Proto_Proxy.C2Proxy_SendDataProto + 1):
{ // 登录协议
// map[PlayerSt:<nil> Protocol:6 Protocol2:2
// UserData:map[Avatar:1 Bind:xioaji Coin:6.6666666e+07 Exp:0 FunctionLock:[map[FunctionId:1 IsLock:true] map[FunctionId:2 IsLock:true] map[FunctionId:3 IsLock:true]] GameRound:1 Masonry:8.8888888e+07 OpenId:37693cfc748049e45d87b8c7d8b9aacd RoomId:0 TankInfo:map[BombId:3000 IsRobot:true Repair:1600 TankId:2000] TankRound:1 UserID:4992 UserLev:1 UserName:binge VIP:0]]
glog.Info("-----收到数据,玩家数据:", ProtocolData["UserData"])
glog.Info("-----收到数据,玩家UID:", ProtocolData["UserData"].(map[string]interface{})["UserID"].(float64))
glog.Info("-----收到数据,玩家金币:", ProtocolData["UserData"].(map[string]interface{})["Coin"])
if ProtocolData["UserData"].(map[string]interface{})["UserID"].(float64) != 0 {
cxt.Login_SUCC = true
}
if cxt.Login_SUCC {
glog.Info("登录游戏服务器成功!")
}
}
default:
glog.Info("子协议不存在")
}
}
后续会在抖音直播间或者视频给大家讲解,主要文章中贴太多代码特别是项目的都比较晦涩难懂,抖音直播间名称:VersusWar。
主要是编程逻辑和思路,编码是比较简单的事情;本节主要是解决EbitEn的客户端连接到代理Proxy服务器的基础逻辑。大家主要能借鉴就可以借鉴下;了解整个架构的设计是主要的。
下节我们主要解决:EbitEn的客户端通过代理服务器链接内网游戏服务器。
本节就暂时到这里,明天继续EbitEngine编程。代码比较简单,不明白的可以留言。
社区自己开发的IO小游戏,欢迎体验:
同学们,兴趣是最好的老师;只争朝夕,不负韶华!加油!
参考资料:
Go语言中文文档
http://www.golang.ltd/