static void Main(string[] args) { LogManager.Configuration = NlogConfig.getNewConfig(); var logger = LogManager.GetCurrentClassLogger(); logger.Debug("===== FastTunnel Server Start ====="); logger.Debug("===== args =====" + Environment.NewLine + string.Join(Environment.NewLine, args)); try { var servicesProvider = new Host().Config(Config).Build(); Run(servicesProvider); } catch (Exception ex) { // NLog: catch any exception and log it. logger.Error(ex); Console.WriteLine(ex); } finally { // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) LogManager.Shutdown(); } }
static void Main(string[] args) { LogManager.Configuration = NlogConfig.getNewConfig(); var logger = LogManager.GetCurrentClassLogger(); logger.Debug("===== FastTunnel Client Start ====="); try { var servicesProvider = new Host().Config(Config).Build(); Run(servicesProvider); while (true) { Thread.Sleep(10000 * 60); } } catch (Exception ex) { // NLog: catch any exception and log it. logger.Error(ex, "Stopped program because of exception"); throw; } finally { // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) LogManager.Shutdown(); } }
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging((context) => { context.AddNLog(NlogConfig.getNewConfig()); }) .ConfigureServices((hostContext, services) => { services.AddHostedService <SuiDaoServer>(); });
/// <summary> /// 使用托管服务实现后台任务:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0&tabs=visual-studio /// </summary> /// <param name="args"></param> /// <returns></returns> public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging((context) => { context.AddNLog(NlogConfig.getNewConfig()); }) .ConfigureServices((hostContext, services) => { services.AddHostedService <ServiceFastTunnelServer>(); // DI services.AddTransient <FastTunnelServer>(); //services.AddSingleton<IServerConfig>(); });
/// <summary> /// suidao.io 客户端 /// </summary> /// <param name="args"></param> static void Main(string[] args) { LogManager.Configuration = NlogConfig.getNewConfig(); var logger = LogManager.GetCurrentClassLogger(); logger.Info("===== SuiDao Client Start ====="); var keyFile = Path.Combine(AppContext.BaseDirectory, KeyLogName); if (!File.Exists(keyFile)) { NewKey(logger); return; } List <string> keys = new List <string>(); using (var reader = new StreamReader(keyFile)) { while (!reader.EndOfStream) { var line = reader.ReadLine(); if (!string.IsNullOrEmpty(line)) { keys.Add(line); } } } keys = keys.Distinct().ToList(); if (keys.Count > 0) { Console.WriteLine("请选择要启动的客户端:" + Environment.NewLine); Console.WriteLine($" 0:其他密钥登录"); for (int i = 0; i < keys.Count; i++) { Console.WriteLine($" {i + 1}:{keys[i]}"); } Console.WriteLine(Environment.NewLine + "输入编号回车键继续:"); HandleNum(keys, logger); return; } }
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging((context) => { context.AddNLog(NlogConfig.getNewConfig()); }) .ConfigureServices((hostContext, services) => { services.AddHostedService <SuiDaoServer>(); // DI services.AddSingleton <FastTunnelServer>() .AddSingleton <LoginHandler>() .AddSingleton <SwapMsgHandler>() .AddSingleton <HeartHandler>() .AddSingleton <IConfigHandler, SuiDaoConfigHandler>(); });
/// <summary> /// suidao.io 客户端 /// 参数规范定义 [指令 参数] /// 指令 /// login [AccessKey] /// </summary> /// <param name="args"></param> static void Main(string[] args) { LogManager.Configuration = NlogConfig.getNewConfig(); var logger = LogManager.GetCurrentClassLogger(); logger.Info("===== SuiDao Client Start ====="); if (args.Length == 0) { defaultLogic(logger); return; } switch (args[0]) { case "login": loginByKey(logger, args); break; default: Console.WriteLine($"{args[0]} 指令不存在"); break; } }
/// <see cref="ApiClientAbstract(string, string, string, string, bool)"/> public ApiClient(string apiKey, string apiUrl = @"https://api.cobinhood.com", string webSocketEndpoint = @"wss://feed.cobinhood.com/ws", bool addDefaultHeaders = true) : base(apiKey, apiUrl, webSocketEndpoint, addDefaultHeaders) { NlogConfig.Configure(); }