/// <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); }
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); }