//supports just one server for now
public LoadBalancer(String servers,
int loadBalanceConnectTimeout,
int loadBalanceIdleTime,
int loadBalanceRecoverTime,
int loadBalanceSocketTimeout,
int keepaliveTimeout,
int socketTimeout,
bool isDebug)
{
_log = Logger.GetLogger();
_loadBalanceConnectTimeout = loadBalanceConnectTimeout;
_loadBalanceIdleTime = loadBalanceIdleTime;
_loadBalanceRecoverTime = loadBalanceRecoverTime;
_loadBalanceSocketTimeout = loadBalanceSocketTimeout;
_keepaliveTimeout = keepaliveTimeout;
_socketTimeout = socketTimeout;
_isDebug = isDebug;
List <Server> pool = new List <Server>();
String[] sruns = servers.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < sruns.Length; i++)
{
String server = sruns[i];
int portIdx = server.LastIndexOf(':');
String host = server.Substring(0, portIdx);
IPAddress address = GetIPsForHost(host);
int port = int.Parse(server.Substring(portIdx + 1, server.Length - portIdx - 1));
char c = (char)('a' + i);
_log.Info("Adding Server '{0}:{1}:{2}'", c, host, port);
Server srun = new Server(c, address, port, _loadBalanceConnectTimeout, _loadBalanceIdleTime, _loadBalanceRecoverTime, _socketTimeout);
srun.SetDebug(_isDebug);
pool.Add(srun);
}
_servers = pool.ToArray();
_random = new Random();
}