MQTTnet是用于基于MQTT的通信的高性能.NET库。它提供了一个MQTT客户机和一个MQTT服务器(代理)。实施基于http://mqtt.org/。
General
异步支持
TLS支持客户端和服务器(但不支持UWP服务器)
可扩展通信信道(例如内存、TCP、TCP+TLS、WS)
轻量级(仅MQTT的低级实现,没有开销)
性能优化(每秒处理70.000条消息)*
跨所有支持的MQTT协议版本的统一API
包括模拟和测试的接口
访问内部跟踪消息
单元测试(~250次测试)
无外部依赖项
*在本地计算机(Intel i7 8700K)上测试,MQTTnet客户端和服务器使用TCP通道在同一进程中运行。用于验证的应用程序是此存储库的一部分,存储在/Tests中/MQTTnet.TestApp.NetCore.
Client
支持通过TCP(+TLS)或WS(WebSocket)进行通信
包含具有低级功能的核心低级mqttclient
还包括自动维护连接和订阅的ManagedMqttClient。此外,应用程序消息会自动排队并重新调度以获得更高的QoS级别。
接收支持(通过另一个项目)
与Microsoft Azure IoT Hub兼容
服务器(代理)
可用的已连接客户端列表
支持同时具有不同协议版本的连接客户端
能够发布自己的消息(不需要环回客户端)
能够接收每条消息(不需要环回客户端)
可扩展客户端凭据验证
支持保留消息,包括通过接口方法持久化(需要自己的实现)
支持WebSocket(通过ASP.NET核心2.0,单独的nuget)
可以添加一个自定义消息拦截器,它允许转换或扩展每个接收到的应用程序消息
根据请求的客户端验证订阅并拒绝订阅某些主题
同时连接具有不同协议版本的客户端。
MQTTnet服务器
MQTTnet服务器是基于此库的独立跨平台MQTT服务器(如mosquitto)。它有以下特点。
运行便携式(无需安装)
运行Windows、Linux、macOS、Raspberry Pi
Python脚本支持操作消息、验证客户机、构建业务逻辑等。
支持WebSocket和TCP(带或不带TLS)连接
提供基于HTTP的API(包括Swagger端点)
支持广泛的配置参数和定制