mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-15 00:15:15 +08:00
* Remove WebSocket4Net extension library * Remove UWP support * Drop support for all old frameworks * Update CI * Update CI * Update CI * Update CI * Remove obsolete code * Set default protocol version to 5.0.0 * Remove obsolete tests * Remove old dependencies * Reset release notes * Move server to dedicated project * Fix unit tests * Update and cleanup nuget packages * Fix unit tests Refactor code * No longer throw exception when receiving non success CONNACK * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable nuget signing * Enable code signing * Enable code signing * Enable code signing * Fix client endpoint handling * Improve CI * Fix CI * Fix CI * Fix CI * Fix CI * Import changes from version 4 * Cleanup target frameworks and remove obsolete code * Drop support for dotnet7.0 * Remove managed client * Version5 auditmode (#2016) Added NuGet audit mode and some other settings to get informed about security issues. * Address warnings from analyzers * Support for ReadOnlySequence as payload (#2046) * use ReadOnlySequence as payload * fix build * fix build * skip sign in forks * remove unnecessary owner * tests and extensions * remove test * simplify WritePacketBuffer, remove unused helper * Adjust namespaces * Fix build errors * Import latest fixes from main branch * Adjust namespaces --------- Co-authored-by: SeppPenner <HansM2013@gmx.de> Co-authored-by: Martin Regen <mregen@microsoft.com>
84 lines
4.1 KiB
Markdown
84 lines
4.1 KiB
Markdown
<p align="center">
|
|
<img src="https://github.com/dotnet/MQTTnet/blob/master/Images/icon_det_256.png?raw=true" width="196">
|
|
<br/>
|
|
</p>
|
|
|
|
[](https://www.nuget.org/packages/MQTTnet)
|
|
[](https://github.com/dotnet/MQTTnet/actions/workflows/ci.yml)
|
|
[](https://www.myget.org/feed/mqttnet/package/nuget/MQTTnet)
|
|

|
|
[](https://gitter.im/MQTTnet/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
[](https://raw.githubusercontent.com/dotnet/MQTTnet/master/LICENSE)
|
|
|
|
# MQTTnet
|
|
|
|
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (
|
|
broker) and supports the MQTT protocol up to version 5. It is compatible with mostly any supported .NET Framework
|
|
version and CPU architecture.
|
|
|
|
## Features
|
|
|
|
### General
|
|
|
|
* Async support
|
|
* TLS support for client and server (but not UWP servers)
|
|
* Extensible communication channels (e.g. In-Memory, TCP, TCP+TLS, WS)
|
|
* Lightweight (only the low level implementation of MQTT, no overhead)
|
|
* Performance optimized (processing ~150.000 messages / second)*
|
|
* Uniform API across all supported versions of the MQTT protocol
|
|
* Access to internal trace messages
|
|
* Unit tested (~636 tests)
|
|
* No external dependencies
|
|
|
|
\* Tested on local machine (Intel i7 8700K) with MQTTnet client and server running in the same process using the TCP
|
|
channel. The app for verification is part of this repository and stored in _/Tests/MQTTnet.TestApp.NetCore_.
|
|
|
|
### Client
|
|
|
|
* Communication via TCP (+TLS) or WS (WebSocket) supported
|
|
* Included core _LowLevelMqttClient_ with low level functionality
|
|
* Also included _ManagedMqttClient_ which maintains the connection and subscriptions automatically. Also application
|
|
messages are queued and re-scheduled for higher QoS levels automatically.
|
|
* Rx support (via another project)
|
|
* Compatible with Microsoft Azure IoT Hub
|
|
|
|
### Server (broker)
|
|
|
|
* List of connected clients available
|
|
* Supports connected clients with different protocol versions at the same time
|
|
* Able to publish its own messages (no loopback client required)
|
|
* Able to receive every message (no loopback client required)
|
|
* Extensible client credential validation
|
|
* Retained messages are supported including persisting via interface methods (own implementation required)
|
|
* WebSockets supported (via ASP.NET Core 2.0, separate nuget)
|
|
* A custom message interceptor can be added which allows transforming or extending every received application message
|
|
* Validate subscriptions and deny subscribing of certain topics depending on requesting clients
|
|
|
|
## Getting Started
|
|
|
|
MQTTnet is delivered via <b>NuGet</b> package manager. You can find the packages
|
|
here: https://www.nuget.org/packages/MQTTnet/
|
|
|
|
Use these command in the Package Manager console to install MQTTnet manually:
|
|
|
|
```
|
|
Install-Package MQTTnet
|
|
```
|
|
|
|
Samples for using MQTTnet are part of this repository. For starters these samples are recommended:
|
|
|
|
- [Connect with a broker](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Connection_Samples.cs)
|
|
- [Subscribing to data](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Subscribe_Samples.cs)
|
|
- [Publishing data](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Publish_Samples.cs)
|
|
- [Host own broker](https://github.com/dotnet/MQTTnet/blob/master/Samples/Server/Server_Simple_Samples.cs)
|
|
|
|
## Code of Conduct
|
|
|
|
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our
|
|
community.
|
|
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
|
|
|
|
## .NET Foundation
|
|
|
|
This project is supported by the [.NET Foundation](https://dotnetfoundation.org).
|