private ErrorCode GStateReportHandler(NetSessionBase session, Protos.GSInfo GSInfoRecv) { session.logicID = GSInfoRecv.Id; bool hasRecord = CS.instance.lIDToGSInfos.TryGetValue(session.logicID, out GSInfo gsInfo); if (!hasRecord) { gsInfo = new GSInfo(); CS.instance.lIDToGSInfos[session.logicID] = gsInfo; } //更新GS信息 gsInfo.lid = session.logicID; gsInfo.sessionID = session.id; gsInfo.name = GSInfoRecv.Name; gsInfo.ip = GSInfoRecv.Ip; gsInfo.port = GSInfoRecv.Port; gsInfo.password = GSInfoRecv.Password; gsInfo.state = (GSInfo.State)GSInfoRecv.State; //Logger.Log( $"report from GS:{gsInfo}" ); //转发到LS Protos.CS2LS_GSInfo nGSInfo = ProtoCreator.Q_CS2LS_GSInfo(); nGSInfo.GsInfo = new Protos.GSInfo { Id = gsInfo.lid, Name = gsInfo.name, Ip = gsInfo.ip, Port = gsInfo.port, Password = gsInfo.password, State = (Protos.GSInfo.Types.State)gsInfo.state }; CS.instance.netSessionMgr.Send(SessionType.ServerLS, nGSInfo); return(ErrorCode.Success); }
public ErrorCode OnCs2LsGsinfo(NetSessionBase session, Google.Protobuf.IMessage message) { Protos.CS2LS_GSInfo gsInfo = (Protos.CS2LS_GSInfo)message; return(this.GCStateReportHandler(gsInfo.GsInfo)); }