Example #1
0
 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.");
        }
Example #3
0
        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;
        }