void register(IPEndPoint endpoint, MetaData.Roles role) { if (role == MetaData.Roles.cache) { cacheServer = endpoint.Address.ToString(); //Console.WriteLine("Зарегистрирован кэш-сервер по адресу " + endpoint.Address.ToString()); servers.ToList().ForEach(x => x.SendCacheIP(cacheServer)); } else { var rs = new RefServer(endpoint, this); servers.Add(rs); //Console.WriteLine("Зарегистрирован сервер реферирования по адресу " + endpoint.Address.ToString()); if (cacheServer != String.Empty) { rs.SendCacheIP(cacheServer); } } ShowServers(); string priorityString = priority.ToString(); MetaData registerResponceMD = new MetaData(MetaData.Roles.dispatcher, MetaData.Actions.register, MetaData.ContentTypes.plainText, priorityString); tcpListener.Send(endpoint, priorityString, registerResponceMD); priority++; //todo: менять приоритет }
internal void UpdateServerList(RefServer refServer) { servers.Remove(refServer); ShowServers(); }