public async void LogoutTest() { var client = new StarClient(Server); await client.Login(); await client.Logout("test"); }
//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; }
/// <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; }