MQTTnet 是一个用于基于 MQTT 通信的高性能 .NET 库。它提供 MQTT 客户端和 MQTT 服务器(代理),并支持最高版本 5 的 MQTT 协议。它与大多数受支持的 .NET Framework 版本和 CPU 架构兼容。
异步支持
对客户端和服务器(但不包括 UWP 服务器)的 TLS 支持
可扩展的通信通道(例如内存中、TCP、TCP+TLS、WS)
轻量级(仅MQTT的底层实现,无开销)
性能优化(每秒处理约 150.000 条消息)*
跨所有受支持的 MQTT 协议版本的统一 API
访问内部跟踪消息
单元测试(约 636 次测试)
无外部依赖
* 在本地计算机(Intel i7 8700K)上进行测试,MQTTnet 客户端和服务器使用 TCP 通道在同一进程中运行。用于验证的应用程序是此存储库的一部分,并存储在/Tests/MQTTnet.TestApp.NetCore中。
支持通过 TCP (+TLS) 或 WS (WebSocket) 进行通信
包含具有低级功能的核心LowLevelMqttClient
还包括ManagedMqttClient ,它自动维护连接和订阅。此外,应用程序消息也会自动排队并重新调度以获得更高的 QoS 级别。
Rx 支持(通过另一个项目)
与微软Azure物联网中心兼容
可用的已连接客户端列表
支持同时连接不同协议版本的客户端
能够发布自己的消息(不需要环回客户端)
能够接收每条消息(不需要环回客户端)
可扩展的客户端凭据验证
支持保留消息,包括通过接口方法持久化(需要自己的实现)
支持 WebSockets(通过 ASP.NET Core 2.0,单独的 nuget)
可以添加自定义消息拦截器,允许转换或扩展每个收到的应用程序消息
根据请求的客户端验证订阅并拒绝订阅某些主题
MQTTnet 通过NuGet包管理器提供。您可以在这里找到这些包:https://www.nuget.org/packages/MQTTnet/
在程序包管理器控制台中使用以下命令手动安装 MQTTnet:
Install-Package MQTTnet
使用 MQTTnet 的示例是此存储库的一部分。对于初学者,建议使用以下示例:
与经纪人联系
订阅数据
发布数据
托管自己的经纪人
该项目采用了贡献者契约定义的行为准则,以阐明我们社区的预期行为。有关详细信息,请参阅 .NET 基金会行为准则。
该项目由 .NET 基金会支持。