public TcpMessageSender(ClientConfig clientConfig, IMessageStatistics statistics) { _mClientConfig = clientConfig; _mStatistics = statistics; _mActive = true; _mQueue = new List<IMessageTree>(100000); _mCodec = new PlainTextMessageCodec(); }
public virtual void InitializeClient(ClientConfig clientConfig) { _mClientConfig = clientConfig ?? new ClientConfig(); _mHostName = NetworkInterfaceManager.GetLocalHostName(); _mStatistics = new DefaultMessageStatistics(); _mSender = new TcpMessageSender(_mClientConfig, _mStatistics); _mSender.Initialize(); _mFactory = new MessageIdFactory(); _mStatusUpdateTask = new StatusUpdateTask(_mStatistics); // initialize domain and ip address _mFactory.Initialize(_mClientConfig.Domain.Id); // start status update task ThreadPool.QueueUserWorkItem(_mStatusUpdateTask.Run); Logger.Info("Thread(StatusUpdateTask) started."); }
private static ClientConfig LoadClientConfig(string configFile) { ClientConfig config = new ClientConfig(); if (File.Exists(configFile)) { Logger.Info("Use config file({0}).", configFile); XmlDocument doc = new XmlDocument(); doc.Load(configFile); XmlElement root = doc.DocumentElement; if (root != null) { config.Domain = BuildDomain(root.GetElementsByTagName("domain")); IEnumerable<Server> servers = BuildServers(root.GetElementsByTagName("servers")); //NOTE: 只添加Enabled的 foreach (Server server in servers.Where(server => server.Enabled)) { config.Servers.Add(server); Logger.Info("CAT server configured: {0}:{1}", server.Ip, server.Port); } } } else { Logger.Warn("Config file({0}) not found, using localhost:2280 instead.", configFile); config.Domain = BuildDomain(null); config.Servers.Add(new Server("localhost", 2280)); } return config; }