Example #1
0
        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;
        }
Example #2
0
        //接收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);
        }
Example #3
0
        //接收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); //登陆成功事件来移除绑定事件
        }
Example #4
0
        /// <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);
        }
Example #5
0
 public void OnNotifyGateServerInfo(Stream stream)
 {
     BSToGC.AskGateAddressRet msg = ProtoBuf.Serializer.Deserialize <BSToGC.AskGateAddressRet>(stream);
     EventSystem.Broadcast(EGameEvent.OnReceiveGSInfo, msg);
 }