public void OnReceiveGSInfo(BSToGC.AskGateAddressRet msg) { GameServerData.Instance.ServerAddress = msg.ip; GameServerData.Instance.ServerPort = msg.port; GameServerData.Instance.ServerToken = msg.token; GameServerData.Instance.GateServerUin = msg.user_name; NetworkManager.Instance.Configure(msg.ip, msg.port); NetworkManager.Instance.OnConnectServerSuccess += OnConnectGSSuccess; NetworkManager.Instance.EnableConnect = true; }
//接收GateServer信息 public void RecvGateServerInfo(Stream stream) { BSToGC.AskGateAddressRet pMsg = ProtoBuf.Serializer.Deserialize <BSToGC.AskGateAddressRet>(stream); SelectServerData.Instance.GateServerAdress = pMsg.ip; SelectServerData.Instance.GateServerPort = pMsg.port; SelectServerData.Instance.GateServerToken = pMsg.token; SelectServerData.Instance.SetGateServerUin(pMsg.user_name); NetworkManager.Instance.canReconnect = false; NetworkManager.Instance.Close(); NetworkManager.Instance.Init(pMsg.ip, pMsg.port, NetworkManager.ServerType.GateServer); EventCenter.Broadcast(EGameEvent.eGameEvent_LoginSuccess); }
//接收GateServer信息 广播登录成功信息 public void RecvGateServerInfo(Stream stream) { BSToGC.AskGateAddressRet pMsg = ProtobufMsg.MessageDecode <BSToGC.AskGateAddressRet>(stream); SelectServerData.Instance.GateServerAdress = pMsg.ip; SelectServerData.Instance.GateServerPort = pMsg.port; SelectServerData.Instance.GateServerToken = pMsg.token; SelectServerData.Instance.SetGateServerUin(pMsg.user_name); NetworkManager.Instance.canReconnect = false; NetworkManager.Instance.Close(); NetworkManager.Instance.Init(pMsg.ip, pMsg.port, NetworkManager.ServerType.GateServer, true); EventCenter.Broadcast((Int32)GameEventEnum.GameEvent_LoginSuccess); //登陆成功事件来移除绑定事件 }
/// <summary> /// GS回应客户端已登陆 /// </summary> private ErrorCode MsgHandleOneUserLoginTokenRet(byte[] data, int offset, int size, int msgID) { if (!BS.instance.bsConfig.allGsInfo.TryGetValue(this.logicID, out OneGsInfo _)) { Logger.Error("can not find GS for loginer."); return(ErrorCode.GSNotFound); } BSToGS.OneUserLoginToken msg = new BSToGS.OneUserLoginToken(); msg.MergeFrom(data, offset, size); BSToGC.AskGateAddressRet msgSend = new BSToGC.AskGateAddressRet { UserName = msg.UserName, Token = msg.Token, //这是网关的地址 Ip = msg.Ip, Port = msg.Port }; //通知客户端GS的地址 this.owner.SendMsgToSession(( uint )msg.Gateclient, msgSend, ( int )BSToGC.MsgID.EMsgToGcfromBsAskGateAddressRet); return(ErrorCode.Success); }
public void OnNotifyGateServerInfo(Stream stream) { BSToGC.AskGateAddressRet msg = ProtoBuf.Serializer.Deserialize <BSToGC.AskGateAddressRet>(stream); EventSystem.Broadcast(EGameEvent.OnReceiveGSInfo, msg); }