private static void SetConfig(Router clientRouter)
        {
            NSPClientConfig config = new NSPClientConfig();

            config.ProviderAddress = Configuration.GetSection("ProviderAddress").Value;
            // config.ProviderPort = int.Parse(Configuration.GetSection("ProviderPort").Value);
            // config.ProviderConfigPort = int.Parse(Configuration.GetSection("ProviderConfigPort").Value);
            config.ProviderWebPort = int.Parse(Configuration.GetSection("ProviderWebPort").Value);
            var configClients = Configuration.GetSection("Clients").GetChildren();

            foreach (var cli in configClients)
            {
                int confConsumerPort = 0;
                if (cli["ConsumerPort"] != null)
                {
                    confConsumerPort = int.Parse(cli["ConsumerPort"]);
                }
                config.Clients.Add(new ClientApp
                {
                    IP = cli["IP"],
                    TargetServicePort = int.Parse(cli["TargetServicePort"]),
                    ConsumerPort      = confConsumerPort,
                    Host = cli["Host"],
                    //(DbProviderType)Enum.Parse(typeof(DbProviderType), strDbType, true)
                    Protocol    = Enum.Parse <Protocol>((cli["Protocol"] ?? "TCP").ToUpper()),
                    Description = cli["Description"]
                });
            }
            // Configuration.GetSection("1").
            clientRouter.SetConfiguration(config);
        }
        private static void SetConfig(Router clientRouter)
        {
            NSPClientConfig config = new NSPClientConfig();

            config.ProviderAddress    = Configuration.GetSection("ProviderAddress").Value;
            config.ProviderPort       = int.Parse(Configuration.GetSection("ProviderPort").Value);
            config.ProviderConfigPort = int.Parse(Configuration.GetSection("ProviderConfigPort").Value);
            var configClients = Configuration.GetSection("Clients").GetChildren();

            foreach (var cli in configClients)
            {
                int confConsumerPort = 0;
                if (cli["ConsumerPort"] != null)
                {
                    confConsumerPort = int.Parse(cli["ConsumerPort"]);
                }
                config.Clients.Add(new ClientApp
                {
                    IP = cli["IP"],
                    TargetServicePort = int.Parse(cli["TargetServicePort"]),
                    ConsumerPort      = confConsumerPort
                });
            }
            // Configuration.GetSection("1").
            clientRouter.SetConfiguration(config);
        }
        private static string TryLoadDefaultPath(string ConfigFilePath)
        {
            int n = 0;

            while (n <= 10) //最近10个配置文件
            {
                try
                {
                    string path = ConfigFilePath;
                    if (n > 0)
                    {
                        path = path.Replace("appsettings.json", "appsettings_" + n + ".json");
                    }
                    NSPClientConfig config = ConfigHelper.ReadAllConfig <NSPClientConfig>(path);
                    if (config != null)
                    {
                        return(path);
                    }
                }
                catch
                {
                }
                n++;
            }
            return(ConfigFilePath);
        }
Exemple #4
0
        public void SetServerClientConfig(string userName, string config)
        {
            NSPClientConfig nspClientConfig = null;

            if (String.IsNullOrWhiteSpace(config))//用户如果清空了配置则客户端会自行使用自己的配置文件
            {
                Dbop.SetConfig(userName, "");
            }
            else
            {
                try
                {
                    nspClientConfig = config.ToObject <NSPClientConfig>();
                    nspClientConfig.UseServerControl = true;
                    //nspClientConfig.ProviderAddress = HttpContext.Request.Url.Host;
                    // nspClientConfig.ProviderWebPort = ServerContext.ServerConfig.WebAPIPort;
                    // nspClientConfig.ConfigPort = ServerContext.ServerConfig.ConfigPort;
                    // nspClientConfig.ReversePort = ServerContext.ServerConfig.ReversePort;
                }
                catch (Exception e)
                {
                    throw new Exception("配置格式不正确。");
                }

                Dbop.SetConfig(userName, nspClientConfig.ToJsonString());
            }

            //重置客户端(给客户端发送重定向请求让客户端主动重启)
            var userid = Dbop.Get(userName)?.ToObject <User>().userId;

            //var popClientAsync = await ServerContext.Clients[userid].AppMap.First().Value.PopClientAsync();

            ServerContext.CloseAllSourceByClient(int.Parse(userid));

            //ServerContext.CloseAllSourceByClient();
            //return new NSPClientConfig();
        }
Exemple #5
0
 public Router SetConfiguration(NSPClientConfig config)//start之前一定要执行该方法,否则出错
 {
     ClientConfig     = config;
     ClientDispatcher = new NSPDispatcher($"{ClientConfig.ProviderAddress}:{ClientConfig.ProviderWebPort}");
     return(this);
 }
Exemple #6
0
 public Router SetConfiguration(NSPClientConfig config)
 {
     ClientConfig = config;
     return(this);
 }