Beispiel #1
0
        public async void LogoutTest()
        {
            var client = new StarClient(Server);

            await client.Login();

            await client.Logout("test");
        }
Beispiel #2
0
        //static ServiceManager _Manager;
        private static void StartClient()
        {
            var set    = XConfig.Current;
            var server = set.Server;

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

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

            var client = new StarClient(server)
            {
                Code        = set.Code,
                Secret      = set.Secret,
                ProductCode = "CrazyCoder",
                Log         = XTrace.Log,
            };

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

            client.UseTrace();

            Application.ApplicationExit += (s, e) => client.Logout("ApplicationExit");

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

            _Client = client;
        }
Beispiel #3
0
        /// <summary>服务停止</summary>
        /// <remarks>
        /// 安装Windows服务后,服务停止会执行该方法。
        /// 控制台菜单按5进入循环调试,任意键结束时也会执行该方法。
        /// </remarks>
        protected override void StopWork(String reason)
        {
            base.StopWork(reason);

            _timer.TryDispose();
            _timer = null;

            _Manager.Stop(reason);
            //_Manager.TryDispose();

            _Client?.Logout(reason);
            //_Client.TryDispose();
            _Client = null;

            _factory = null;

            _server.TryDispose();
            _server = null;
        }