GameServerListManager() { try { DirServiceSoapClient dirClient = new DirServiceSoapClient(); ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => true; string keyCode = ""; var gameList = dirClient.GetGame(); foreach (var gameInfo in gameList) { var serverList = dirClient.GetServers(gameInfo.ID, false, false); foreach (var serverInfo in serverList) { keyCode = string.Format("{0}_{1}", gameInfo.ID, serverInfo.ID); serversPool.TryAdd(keyCode, serverInfo); } } logger.Info("load game server:{0}", string.Join(",", serversPool.Keys)); } catch (Exception ex) { logger.Error("load game server error:{0}", ex); } }
public static void Initialize(Action <ServerInfo> updateCallback) { try { string[] gameIds = ConfigUtils.GetSetting("GameIds", "").Split(','); DirServiceSoapClient dirClient = new DirServiceSoapClient(); ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => true; string keyCode = ""; List <GameInfo> gameList = new List <GameInfo>(); foreach (var gameId in gameIds) { if (!string.IsNullOrEmpty(gameId)) { var gameInfo = dirClient.GetGameObj(gameId.ToInt()); if (gameInfo != null) { gameList.Add(gameInfo); } } } if (gameList.Count == 0) { gameList.AddRange(dirClient.GetGame()); } foreach (var gameInfo in gameList) { var serverList = dirClient.GetServers(gameInfo.ID, false, false); foreach (var serverInfo in serverList) { keyCode = string.Format("{0}_{1}", gameInfo.ID, serverInfo.ID); ServerInfo temp; if (!serversPool.TryGetValue(keyCode, out temp)) { serversPool.TryAdd(keyCode, serverInfo); } else if (temp.IsEnable != serverInfo.IsEnable || temp.IntranetAddress != serverInfo.IntranetAddress || temp.ServerUrl != serverInfo.ServerUrl) { temp.IsEnable = serverInfo.IsEnable; temp.IntranetAddress = serverInfo.IntranetAddress; temp.ServerUrl = serverInfo.ServerUrl; if (updateCallback != null) { updateCallback(temp); } } } } TraceLog.ReleaseWrite("load game server:{0}", string.Join(",", serversPool.Keys)); } catch (Exception ex) { TraceLog.WriteError("load game server error:{0}", ex); } }
public static void Initialize(Action<ServerInfo> updateCallback) { try { string[] gameIds = ConfigUtils.GetSetting("GameIds", "").Split(','); DirServiceSoapClient dirClient = new DirServiceSoapClient(); ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => true; string keyCode = ""; List<GameInfo> gameList = new List<GameInfo>(); foreach (var gameId in gameIds) { if (!string.IsNullOrEmpty(gameId)) { var gameInfo = dirClient.GetGameObj(gameId.ToInt()); if (gameInfo != null) { gameList.Add(gameInfo); } } } if (gameList.Count == 0) { gameList.AddRange(dirClient.GetGame()); } foreach (var gameInfo in gameList) { var serverList = dirClient.GetServers(gameInfo.ID, false, false); foreach (var serverInfo in serverList) { keyCode = string.Format("{0}_{1}", gameInfo.ID, serverInfo.ID); ServerInfo temp; if (!serversPool.TryGetValue(keyCode, out temp)) { serversPool.TryAdd(keyCode, serverInfo); } else if (temp.IsEnable != serverInfo.IsEnable || temp.IntranetAddress != serverInfo.IntranetAddress || temp.ServerUrl != serverInfo.ServerUrl) { temp.IsEnable = serverInfo.IsEnable; temp.IntranetAddress = serverInfo.IntranetAddress; temp.ServerUrl = serverInfo.ServerUrl; if (updateCallback != null) { updateCallback(temp); } } } } TraceLog.ReleaseWrite("load game server:{0}", string.Join(",", serversPool.Keys)); } catch (Exception ex) { TraceLog.WriteError("load game server error:{0}", ex); } }
GameServerListManager() { DirServiceSoapClient dirClient = new DirServiceSoapClient(); string keyCode = ""; var gameList = dirClient.GetGame(); foreach (var gameInfo in gameList) { var serverList = dirClient.GetServers(gameInfo.ID, false, false); foreach (var serverInfo in serverList) { keyCode = string.Format("{0}_{1}", gameInfo.ID, serverInfo.ID); serversPool.TryAdd(keyCode, serverInfo); } } logger.Info("加载游戏服:{0}", string.Join(",", serversPool.Keys)); }