fixed core 3.1 startup and verified it still works with 2.1 and net461

This commit is contained in:
JanEggers
2020-03-15 14:43:59 +01:00
parent f6a814c6d7
commit 20eda96921
14 changed files with 102 additions and 34 deletions
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
</PropertyGroup>
+5 -3
View File
@@ -1,19 +1,21 @@
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using MQTTnet.AspNetCore;
using System.Threading.Tasks;
namespace MQTTnet.TestApp.AspNetCore2
{
public static class Program
{
public static void Main(string[] args)
public static Task Main(string[] args)
{
BuildWebHost(args).Run();
return BuildWebHost(args).RunAsync();
}
private static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel(o => {
.UseKestrel(o =>
{
o.ListenAnyIP(1883, l => l.UseMqtt());
o.ListenAnyIP(5000); // default http pipeline
})
+22 -11
View File
@@ -1,10 +1,13 @@
using System;
using System.IO;
using System.Reflection;
using System.Runtime.Versioning;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Logging;
using MQTTnet.AspNetCore;
using MQTTnet.Server;
@@ -16,29 +19,37 @@ namespace MQTTnet.TestApp.AspNetCore2
public void ConfigureServices(IServiceCollection services)
{
var mqttServerOptions = new MqttServerOptionsBuilder()
.WithoutDefaultEndpoint()
.Build();
services
.AddHostedMqttServer(mqttServerOptions)
.AddHostedMqttServer(mqttServer => mqttServer.WithoutDefaultEndpoint())
.AddMqttConnectionHandler()
.AddConnections();
}
// In class _Startup_ of the ASP.NET Core 2.0 project.
// In class _Startup_ of the ASP.NET Core 3.1 project.
#if NETCOREAPP3_1
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapMqtt("/mqtt");
});
#else
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseConnections(c => c.MapConnectionHandler<MqttConnectionHandler>("/mqtt", options => {
options.WebSockets.SubProtocolSelector = MQTTnet.AspNetCore.ApplicationBuilderExtensions.SelectSubProtocol;
}));
app.UseConnections(c => c.MapMqtt("/mqtt"));
#endif
//app.UseMqttEndpoint();
app.UseMqttServer(server =>
{
server.StartedHandler = new MqttServerStartedHandlerDelegate(async args =>
{
var frameworkName = GetType().Assembly.GetCustomAttribute<TargetFrameworkAttribute>()?
.FrameworkName;
var msg = new MqttApplicationMessageBuilder()
.WithPayload("Mqtt is awesome")
.WithPayload($"Mqtt hosted on {frameworkName} is awesome")
.WithTopic("message");
while (true)
@@ -46,7 +57,7 @@ namespace MQTTnet.TestApp.AspNetCore2
try
{
await server.PublishAsync(msg.Build());
msg.WithPayload("Mqtt is still awesome at " + DateTime.Now);
msg.WithPayload($"Mqtt hosted on {frameworkName} is still awesome at {DateTime.Now}");
}
catch (Exception e)
{