Я реализовал 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) работает одновременно, а другой не работает.Как я могу решить это?