Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
 public static IHostBuilder CreateHostBuilder(string[] args) =>
 Host.CreateDefaultBuilder(args)
 .ConfigureLogging((context) =>
 {
     context.AddNLog(NlogConfig.getNewConfig());
 })
 .ConfigureServices((hostContext, services) =>
 {
     services.AddHostedService <SuiDaoServer>();
 });
Пример #4
0
        /// <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>();
        });
Пример #5
0
        /// <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;
            }
        }
Пример #6
0
        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>();
        });
Пример #7
0
        /// <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;
            }
        }
Пример #8
0
 /// <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();
 }