Example #1
0
        private IMqttServerOptions Initialize(IConfiguration settings)
        {
            //if (mqttServer != null) throw new Exception($"{name} Duplicate start");

            var config = new MQTTConfig();

            settings.GetSection("MQTT").Bind(config);

            var factory = new MqttFactory();

            mqttServer = factory.CreateMqttServer();

            return(new MqttServerOptionsBuilder()
                   .WithConnectionBacklog(100)
                   .WithConnectionValidator(c => { if (c.Username != config.User)
                                                   {
                                                       return;
                                                   }
                                                   if (c.Password != config.Pass)
                                                   {
                                                       return;
                                                   }
                                                   c.ReasonCode = MqttConnectReasonCode.Success; })
                   .WithDefaultEndpointPort(config.Port).Build());
        }
 public static IHostBuilder CreateHostBuilder(string[] args) =>
 Host.CreateDefaultBuilder(args)
 .ConfigureWebHostDefaults(webBuilder =>
 {
     webBuilder.UseStartup <Startup>();
     webBuilder.UseKestrel(
         (bcont, o) =>
     {
         var config = new VEDrivers.Common.MQTTConfig();
         bcont.Configuration.GetSection("MQTT").Bind(config);
         var mainport = bcont.Configuration.GetValue <int>("MainPort", 8080);
         if (mainport == 0)         // there should be check for reserved ports
         {
             mainport = 8080;
         }
         o.ListenAnyIP(config.Port, l => l.UseMqtt()); // MQTT pipeline
         o.ListenAnyIP(config.WSPort);                 // Default HTTP pipeline
         o.ListenAnyIP(mainport);                      // Default HTTP pipeline
     });
 })
 .ConfigureServices((hostContext, services) =>
 {
     services.AddHostedService <VEconomyCore>();
 })
 .ConfigureServices((hostContext, services) =>
 {
     services.AddHostedService <ExchangeService>();
 })
 .ConfigureServices((hostContext, services) =>
 {
     services.AddHostedService <WalletHandlerCore>();
 })
 .ConfigureAppConfiguration((hostingContext, config) =>
 {
     config.AddJsonFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "appsettings.json"), optional: true);
 })
 .ConfigureLogging(logging =>
 {
     logging.ClearProviders();
     //logging.AddProvider(new Log4NetProvider()); //not needed, using log4net directly
 })
 .UseWindowsService()
 .UseSystemd();
Example #3
0
        private IMqttClientOptions Initialize(IConfiguration settings)
        {
            if (mqttClient != null)
            {
                throw new Exception($"{name} Duplicate start");
            }

            var config = new MQTTConfig();

            settings.GetSection("MQTT").Bind(config);

            var factory = new MqttFactory();

            mqttClient = factory.CreateMqttClient();

            return(new MqttClientOptionsBuilder()
                   .WithTcpServer(config.Host, config.Port)
                   .WithCredentials(config.User, config.Pass)
                   .Build());
        }