MQTTnet — это высокопроизводительная библиотека .NET для связи на основе MQTT. Он предоставляет клиент MQTT и сервер MQTT (брокер) и поддерживает протокол MQTT до версии 5. Он совместим практически с любой поддерживаемой версией .NET Framework и архитектурой ЦП.
Асинхронная поддержка
Поддержка TLS для клиента и сервера (но не серверов UWP)
Расширяемые каналы связи (например, In-Memory, TCP, TCP+TLS, WS)
Легкий вес (только низкоуровневая реализация MQTT, без накладных расходов)
Оптимизирована производительность (обработка ~150 000 сообщений в секунду)*
Единый API для всех поддерживаемых версий протокола MQTT.
Доступ к внутренним сообщениям трассировки
Модульное тестирование (~636 тестов)
Никаких внешних зависимостей
* Протестировано на локальном компьютере (Intel i7 8700K) с клиентом и сервером MQTTnet, работающими в одном процессе с использованием канала TCP. Приложение для проверки является частью этого репозитория и хранится в /Tests/MQTTnet.TestApp.NetCore .
Поддерживается связь через TCP (+TLS) или WS (WebSocket).
Включено ядро LowLevelMqttClient с низкоуровневой функциональностью.
Также включен ManagedMqttClient , который автоматически поддерживает соединение и подписки. Кроме того, сообщения приложений автоматически помещаются в очередь и перепланируются для более высоких уровней QoS.
Поддержка Rx (через другой проект)
Совместимость с Microsoft Azure IoT Hub.
Доступен список подключенных клиентов
Одновременная поддержка подключенных клиентов с разными версиями протокола.
Возможность публикации собственных сообщений (клиент обратной связи не требуется)
Возможность получать каждое сообщение (клиент обратной связи не требуется)
Расширяемая проверка учетных данных клиента
Поддерживаются сохраненные сообщения, в том числе сохранение с помощью методов интерфейса (требуется собственная реализация)
Поддержка WebSockets (через ASP.NET Core 2.0, отдельный nuget)
Можно добавить собственный перехватчик сообщений, который позволяет преобразовывать или расширять каждое полученное сообщение приложения.
Подтверждать подписки и запрещать подписку на определенные темы в зависимости от запросов клиентов.
MQTTnet поставляется через менеджер пакетов NuGet . Вы можете найти пакеты здесь: https://www.nuget.org/packages/MQTTnet/.
Используйте эту команду в консоли диспетчера пакетов, чтобы установить MQTTnet вручную:
Install-Package MQTTnet
Примеры использования MQTTnet являются частью этого репозитория. Для начала рекомендуются следующие образцы:
Связаться с брокером
Подписка на данные
Публикация данных
Хостинг собственного брокера
В этом проекте принят кодекс поведения, определенный Соглашением участников, чтобы прояснить ожидаемое поведение в нашем сообществе. Дополнительную информацию см. в Кодексе поведения .NET Foundation.
Этот проект поддерживается .NET Foundation.