private async Task Load() { var requestNumber = _getBackendsListRequestCount++; //request backends list var serverInfos = await _routerClient.GetServerInfoList(false); if (!serverInfos.Any()) { return; } var meList = serverInfos.Where(s => s.Identity.Equals(_serverIdentity)).ToArray(); if (!meList.Any()) { _logger.Error($"BackendProvider.Load error: can not find me({_serverIdentity}) in serve list"); return; } if (meList.Length > 1) { _logger.Error($"BackendProvider.Load attention: more than 1 servers matched me - (record ids: {string.Join<int>(",",meList.Select(m=>m.Id))}) in serve list"); } _me = meList.First(); var backends = serverInfos.Where(s => s.ServerRole == ServerRole.BackEnd && s.Region == _me.Region && s.IsApproved && s.AreVersionsIntersect(_me)).ToList(); if (!backends.Any()) { _logger.Error($"Received 0 backends from Router!"); } else { if (requestNumber == 1) { _logger.Info($"Received {backends.Count} backends from Router"); } _backends = backends; } }
private async Task GetList() { if (_isRequestingNow) { return; } _isRequestingNow = true; try { _serverList = await _routerClient.GetServerInfoList(false); _gameServerList = BuildGameServersList(); _logger.Info($"MatchMakerServerInfoProvider.GetServerInfoListResponse: i have {_gameServerList.Count()} game servers"); } finally { _isRequestingNow = false; } }
public async Task GetRoutes(string routerUrl, string clientVersion, Action <List <Route> > callback) { var response = await _routerClient.GetServerInfoList(false); callback(BuildRoutes(clientVersion, response)); }