public Connection(ILoadBalancerSettings settings)
            {
                _socket = new TcpClient(settings.Host, 23);
                _socket.ReceiveTimeout = 2000;

                _buffer = new char[_socket.ReceiveBufferSize];
                var stream = _socket.GetStream();
                _reader = new StreamReader(stream);
                _writer = new StreamWriter(stream)
                {
                    AutoFlush = true,
                    NewLine = "\n"
                };
            }
 public AlteonLoadBalancer(ILoadBalancerSettings settings)
 {
     _settings = settings;
 }
Exemple #3
0
        /// <inheritdoc/>
        public DynamicServerListLoadBalancer(string name, IRule rule, IPing ping, IServerList <Server> serverList, IServerListUpdater serverListUpdater, IServerListFilter <Server> serverListFilter, ILoadBalancerSettings settings, ILogger logger = null) : base(name, rule, ping, settings, logger)
        {
            _serverList        = serverList;
            _serverListUpdater = serverListUpdater;
            _serverListFilter  = serverListFilter;

            UpdateListOfServersAsync().GetAwaiter().GetResult();
            if (serverListUpdater != null)
            {
                var updateProcessing = false;
                serverListUpdater.Start(async() =>
                {
                    if (updateProcessing)
                    {
                        return;
                    }

                    updateProcessing = true;

                    try
                    {
                        await UpdateListOfServersAsync();
                    }
                    finally
                    {
                        updateProcessing = false;
                    }
                });
            }
        }