Как запустить несколько основных MQTT-брокеров asp.net на одном сервере Windows? - PullRequest
0 голосов
/ 28 февраля 2019

Я реализовал MQTT-брокер с помощью ядра 2.2 asp.net и хочу запустить его на сервере Windows 2016. Я использую MQTTnet версии 2.8.5 для реализации этого брокера.Это мой код запуска:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<MyMqttServer>();
            services.AddMvc();

            var mqttServerOptions = new MqttServerOptionsBuilder()
                .WithDefaultEndpointPort(1886)
                .Build();
            services
                .AddHostedMqttServer(mqttServerOptions)
                .AddMqttConnectionHandler()
                .AddConnections()
                .AddMqttTcpServerAdapter();
        }

        public void Configure(IApplicationBuilder app, MyMqttServer myMqttServer)
        {
            app.UseDefaultFiles();
            app.UseStaticFiles();

            app.UseMqttServer(server =>
            {
                server.Started += async (sender, args) => await myMqttServer.RunAsync();
            });
         }

, и это мой код в Program.cs

public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
            .UseKestrel(o =>
            {
                o.ListenAnyIP(1885, l => l.UseMqtt()); // mqtt pipeline
                o.ListenAnyIP(5000); // default http pipeline
            })
                .UseStartup<Startup>()
                .Build();

У меня есть два разных приложения-брокера MQTT с этими настройками для MQTT (другоеустановить на порт 1883 и 1884 при запуске), но с разными портами.Проблема только в том, что один из этих брокеров MQTT (брокер, работающий на 1883, 1884) работает одновременно, а другой не работает.Как я могу решить это?

1 Ответ

0 голосов
/ 27 марта 2019

Благодаря JanEggers в команде MQTTNET он помог мне решить проблему.Проблема была в том, что у меня есть класс myMqttServer, который переопределяет настройки в автозагрузке и главном классе.Поэтому мне нужно было удалить эти настройки и сделать это в классе myMqttServer.Подробности вы можете увидеть в этой ссылке на github.

https://github.com/chkr1011/MQTTnet/issues/566

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...