Example #1
0
        public void StartClient()
        {
            var server = StarSetting.Server;

            if (server.IsNullOrEmpty())
            {
                return;
            }

            WriteLog("初始化服务端地址:{0}", server);

            var set    = AgentSetting;
            var client = new StarClient(server)
            {
                Code   = set.Code,
                Secret = set.Secret,
                Log    = XTrace.Log,

                Manager = _Manager,
            };

            // 登录后保存证书
            client.OnLogined += (s, e) =>
            {
                var inf = client.Info;
                if (inf != null && !inf.Code.IsNullOrEmpty())
                {
                    set.Code   = inf.Code;
                    set.Secret = inf.Secret;
                    set.Save();
                }
            };

            // APM埋点。独立应用名
            client.Tracer = _factory.Tracer;

            _Manager.Attach(client.CommandQueue);

            // 使用跟踪
            client.UseTrace();

            _Client = client;

            // 可能需要多次尝试
            _timer = new TimerX(TryConnectServer, client, 0, 5_000)
            {
                Async = true
            };
        }