Skip to main content

The MQTT Client

💽 Installation & Compatibility

  • Easy-to-Install: Available as a Nuget package.
  • Globally Compatible: Built to be a fully compliant MQTT 5.0 client compatible with all modern MQTT brokers.
  • Multi-Targeted: Supports .NET 6.0, 7.0 & 8.0

🚀 Features

  • MQTT 5.0 Support: Fully compliant with the latest MQTT 5.0 specification, ensuring compatibility with modern MQTT brokers.
  • Back Pressure Management: Automatically manages back pressure to prevent overwhelming the broker (or client), ensuring reliable and efficient communication.
  • Asynchronous Design: Designed for high-performance and low-latency communication, allowing your application to process multiple messages concurrently.
  • Extensive Event System: Hook into all parts of the client down to the packet level with built in events.
  • Global and Per-Subscription Message Handling: Use multiple targeted handlers for more targeted and specialized message processing.
  • Full Last Will & Testament Support: Reliable message delivery and notification of client disconnections.
  • Secure Client Identification: Full support for X.509 client certificates and TLS connections.
  • Observable: Configure up to TRACE level logging for package internals.
  • Fast: Optimized & benchmarked. See the benchmark results here.

🏝️ Ease of Use

  • Easy to Use: Smart defaults, excellent interfaces and intelligent automation makes implementing a breeze.
  • Easy Integration: Simple and intuitive API makes it easy to integrate with your .NET applications.

🛟 Maintenance and Support

🐧 Opensource

  • Opensource: No blackbox code. Only trusted, tested and reviewed opensource code.

What is this?

MQTT is an open standard protocol for publishing and consuming messages from IoT devices all the way up to mainframes. It's binary, massively performant and easy to use.

This client library is used to publish and consume messages over MQTT. So you can get a the temperature from a remote sensor, send a control message to a factory robot, tunnel WhatsApp messages to a Twitter account or anything else you can imagine.

This is the client library that speaks with an MQTT broker that delivers messages to their final destination.

Need a broker? Sign up for a free broker at HiveMQ Cloud and be up and running in a couple minutes. Connect up to 100 devices - no credit card required.

MQTT Resources

Need an MQTT Broker?

This client communicates with an MQTT broker to publish and consume messages. It's built to be compatible with all major MQTT brokers but if you need a broker now run the HiveMQ Community Edition:

docker run --name hivemq-ce -d -p 1883:1883 hivemq/hivemq-ce

This will run the HiveMQ Community Edition broker on localhost port 1883.

If you need advanced features, checkout our premium editions or alternatively HiveMQ Cloud which is free to connect up to 100 devices (no credit card required).

More

For more examples that you can easily copy/paste, see our Examples.

There is even an https://github.com/hivemq/hivemq-mqtt-client-dotnet/tree/main/Examples/HiveMQtt-CLI to demonstrate usage of the package.

Other MQTT Clients

🛡 License

License

This project is licensed under the terms of the Apache Software License 2.0 license. See LICENSE for more details.

📃 Citation

@misc{hivemq-mqtt-client-dotnet,
author = {HiveMQ GmbH},
title = {The HiveMQ C# MQTT client for .NET},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/hivemq/hivemq-mqtt-client-dotnet}}
}