コード例 #1
0
        /// <summary>
        /// 登记GS
        /// </summary>
        private ErrorCode MsgAskRegister(byte[] data, int offset, int size, int msgID)
        {
            GSToBS.AskRegister askRegister = new GSToBS.AskRegister();
            askRegister.MergeFrom(data, offset, size);

            //GS的分配号
            int gsid       = askRegister.Gsid;
            int gsListener = askRegister.Listenport;

            //找到对应分配号的GS信息
            if (!BS.instance.bsConfig.allGsInfo.TryGetValue(gsid, out OneGsInfo gsInfo))
            {
                this.Close();
                return(ErrorCode.InvalidGSID);
            }

            if (!gsInfo.gs_isLost ||
                gsInfo.gs_Port != gsListener ||
                gsInfo.gs_Ip != this.connection.remoteEndPoint.ToString().Split(':')[0])
            {
                this.Close();
                return(ErrorCode.GSNotFound);
            }

            gsInfo.gs_isLost = false;
            gsInfo.gs_nets   = this.id;
            this.logicID     = gsid;
            this.SetInited(true, true);

            return(ErrorCode.Success);
        }
コード例 #2
0
 protected override void SendInitData()
 {
     Logger.Info("BS Connected, try to register me.");
     GSToBS.AskRegister askRegister = new GSToBS.AskRegister
     {
         Gsid       = GS.instance.gsConfig.n32GSID,
         Listenport = GS.instance.gsConfig.n32GCListenPort
     };
     GS.instance.SendMsgToSession(this.id, askRegister, ( int )GSToBS.MsgID.EMsgToBsfromGsAskRegister);
 }