MQTTnet.Extensions.ManagedClient.Routing
1.1.0
dotnet add package MQTTnet.Extensions.ManagedClient.Routing --version 1.1.0
NuGet\Install-Package MQTTnet.Extensions.ManagedClient.Routing -Version 1.1.0
<PackageReference Include="MQTTnet.Extensions.ManagedClient.Routing" Version="1.1.0" />
<PackageVersion Include="MQTTnet.Extensions.ManagedClient.Routing" Version="1.1.0" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient.Routing" />
paket add MQTTnet.Extensions.ManagedClient.Routing --version 1.1.0
#r "nuget: MQTTnet.Extensions.ManagedClient.Routing, 1.1.0"
#:package MQTTnet.Extensions.ManagedClient.Routing@1.1.0
#addin nuget:?package=MQTTnet.Extensions.ManagedClient.Routing&version=1.1.0
#tool nuget:?package=MQTTnet.Extensions.ManagedClient.Routing&version=1.1.0
MQTTnet AspNetCore Routing
MQTTnet Extension ManagedClient Routing is a fork of https://github.com/IoTSharp/MQTTnet.AspNetCore.Routing
This addon to MQTTnet provides the ability to define controllers and use attribute-based routing against message topics in a manner that is very similar to AspNet Core.
Overview
MQTTnet.Extensions.ManagedClient.Routing extends MQTTnet's ManagedMqttClient
with controller based routing. Use it when you want to organize MQTT handlers using MVC style controllers and attribute routes.
Installation
dotnet add package MQTTnet.Extensions.ManagedClient.Routing
Usage
Register your MQTT controllers in the DI container and enable routing:
builder.Services.AddMqttControllers();
app.UseAttributeRouting(); // or managedClient.WithAttributeRouting(app.Services);
To execute code before and after each controller action you can register an
IRouteInvocationInterceptor
. Implement the interface and hook it up when
adding the controllers:
builder.Services.AddMqttControllers(opt =>
opt.WithRouteInvocationInterceptor<MyInterceptor>());
RouteExecuting
is called before the handler runs and RouteExecuted
afterwards.
See the architecture overview for
details.
Example controller
public class TelemetryController : MqttBaseController
{
[MqttRoute("telemetry/temperature")]
public Task OnTemperature(string payload)
{
Console.WriteLine($"Temp: {payload}");
return Ok();
}
}
MIT License
This project is released under the MIT License.
Contributing
See CONTRIBUTING.md for guidelines on how to open issues, submit pull requests and run the test suite.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- MQTTnet (>= 5.0.1.1416)
- MQTTnet.AspNetCore (>= 5.0.1.1416)
-
net9.0
- MQTTnet (>= 5.0.1.1416)
- MQTTnet.AspNetCore (>= 5.0.1.1416)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.1.0 | 541 | 7/22/2025 |
Upgraded MQTTnet to v5 and added improved routing tests and documentation.