HiveMQtt 0.1.1
See the version list below for details.
dotnet add package HiveMQtt --version 0.1.1
NuGet\Install-Package HiveMQtt -Version 0.1.1
<PackageReference Include="HiveMQtt" Version="0.1.1" />
paket add HiveMQtt --version 0.1.1
#r "nuget: HiveMQtt, 0.1.1"
// Install HiveMQtt as a Cake Addin #addin nuget:?package=HiveMQtt&version=0.1.1 // Install HiveMQtt as a Cake Tool #tool nuget:?package=HiveMQtt&version=0.1.1
<p align="center"> <img src="https://www.hivemq.com/img/svg/hivemq-mqtt-client.svg" width="500"> <img src="./Images/csharp-logo.png" height="124"> </p>
<div align="center">
The Spectacular (BETA) C# MQTT Client for .NET
This .NET MQTT client was put together with love from the HiveMQ team but is still in DEVELOPMENT. As such some things may not work completely until it matures and although unlikely, APIs may change slightly before version 1.0.
We'd appreciate any feedback you have. Happy MQTT adventures!
</div>
- Easy-to-Install: Available as a Nuget package.
- Opensource: No blackbox code. Only trusted, tested and reviewed opensource code.
- Easy to Use: Smart defaults, excellent interfaces and intelligent automation makes implementing a breeze.
- MQTT v5.0 compatible: Backported versions 3.1.1 & 3.0 coming soon!
- Globally Compatible: Built to be a fully compliant client compatible with all reputable MQTT brokers.
- Actively Maintained: Built by the MQTT professionals that built HiveMQ (and do this for a living).
- Extensively Documented: What good is it without excellent documentation?
- Supported: Contact us anytime in this repository, in the community forum or through support.
Do you have a success story with this client? Let us know. We'd love to feature your story in a blog post or video and you'll get some sweet HiveMQ swag (and publicity) along the way.
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 MQTT 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.
Install
... via NuGet
Quickstart
Simple Connect
using HiveMQtt.Client;
// Connect
var client = new HiveMQClient();
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
With Options
var options = new HiveMQClientOptions();
options.Host = 'candy.x39.eu.hivemq.cloud';
options.Port = 8883;
var client = new HiveMQClient(options);
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
Basic Subscribe & Publish
using HiveMQtt.Client;
// Connect
var client = new HiveMQClient();
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
// Message Handler
client.OnMessageReceived += (sender, args) =>
{
Console.WriteLine("Message Received: {}", args.PublishMessage.PayloadAsString)
};
// Subscribe
await client.SubscribeAsync("instrument/x9284/boston").ConfigureAwait(false);
await client.PublishAsync(
"core/dynamic_graph/entity/227489", // Topic to publish to
"{'2023': '👍'}" // Message to publish
).ConfigureAwait(false);
Subscribe to Multiple Topics At Once With Varying QoS Levels
using HiveMQtt.Client.Options;
using HiveMQtt.Client.Results;
var options = new SubscribeOptions();
options.TopicFilters.Add(new TopicFilter { Topic = "foo/boston", QoS = QualityOfService.AtLeastOnceDelivery });
options.TopicFilters.Add(new TopicFilter { Topic = "bar/landshut", QoS = QualityOfService.AtMostOnceDelivery });
var result = await client.SubscribeAsync(options);
result.Subscriptions
contains the list of subscriptions made with this callclient.Subscriptions
is updated with complete list of subscriptions made up to this point- each
Subscription
object has a resultingReasonCode
that represents the Subscribe result inresult.Subscriptions[0].ReasonCode
For more examples that you can easily copy/paste, see our Examples.
General Events
Event | EventArgs Class | Event Arguments |
---|---|---|
BeforeConnect | BeforeConnectEventArgs |
HiveMQClientOptions |
AfterConnect | AfterConnectEventArgs |
ConnectResult |
BeforeSubscribe | BeforeSubscribeEventArgs |
SubscribeOptions |
AfterSubscribe | AfterSubscribeEventArgs |
SubscribeResult |
BeforeUnsubscribe | BeforeUnsubscribeEventArgs |
UnsubscribeOptions |
AfterUnsubscribe | AfterUnsubscribeEventArgs |
UnsubscribeResult |
OnMessageReceived | OnMessageReceivedEventArgs |
MQTT5PublishMessage |
Packet Level Events
Event | EventArgs Class | Event Arguments |
---|---|---|
OnConnectSent | OnConnectSentEventArgs |
ConnectPacket |
OnConnAckReceived | OnConnAckReceivedEventArgs |
ConnAckPacket |
OnConnectSent | OnConnectSentEventArgs |
ConnectPacket |
OnDisconnectReceived | OnDisconnectReceivedEventArgs |
DisconnectPacket |
OnDisconnectSent | OnDisconnectSentEventArgs |
DisconnectPacket |
OnPingReqSent | OnPingReqSentEventArgs |
PingReqPacket |
OnPingRespReceived | OnPingRespReceivedEventArgs |
PingRespPacket |
OnPublishSent | OnPublishSentEventArgs |
PublishPacket |
OnPublishReceived | OnPublishReceivedEventArgs |
PublishPacket |
OnPubAckSent | OnPubAckSentEventArgs |
PubAckPacket |
OnPubAckReceived | OnPubAckReceivedEventArgs |
PubAckPacket |
OnPubRecSent | OnPubRecSentEventArgs |
PubRecPacket |
OnPubRecReceived | OnPubRecReceivedEventArgs |
PubRecPacket |
OnPubRelSent | OnPubRelSentEventArgs |
PubRelPacket |
OnPubRelReceived | OnPubRelReceivedEventArgs |
PubRelPacket |
OnPubCompSent | OnPubCompSentEventArgs |
PubCompPacket |
OnPubCompReceived | OnPubCompReceivedEventArgs |
PubCompPacket |
OnSubscribeSent | OnSubscribeSentEventArgs |
SubscribePacket |
OnSubAckSent | OnSubAckSentEventArgs |
SubAckPacket |
OnUnsubscribeSent | OnUnsubscribeSentEventArgs |
UnsubscribePacket |
OnUnsubAckSent | OnUnsubAckSentEventArgs |
UnsubAckPacket |
🛡 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 = {HiveMQ MQTT Client is an MQTT 5.0 and MQTT 3.1.1 compatible and feature-rich high-performance .NET client library with different API flavours and backpressure support.},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/hivemq/hivemq-mqtt-client-dotnet}}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- NLog (>= 5.1.1)
- System.IO.Pipelines (>= 7.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on HiveMQtt:
Package | Downloads |
---|---|
MQContract.HiveMQ
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.24.0 | 174 | 11/18/2024 |
0.23.0 | 5,829 | 9/6/2024 |
0.22.1 | 1,292 | 7/22/2024 |
0.22.0 | 510 | 7/5/2024 |
0.21.0 | 101 | 7/2/2024 |
0.20.0 | 93 | 6/27/2024 |
0.19.1 | 104 | 6/24/2024 |
0.19.0 | 339 | 6/17/2024 |
0.18.1 | 389 | 6/10/2024 |
0.18.0 | 55 | 6/10/2024 |
0.17.0 | 461 | 6/4/2024 |
0.16.0 | 103 | 5/31/2024 |
0.15.1 | 113 | 5/29/2024 |
0.15.0 | 82 | 5/28/2024 |
0.14.0 | 219 | 5/21/2024 |
0.13.0 | 180 | 5/17/2024 |
0.12.0 | 256 | 5/7/2024 |
0.11.5 | 72 | 5/6/2024 |
0.11.4 | 1,869 | 4/16/2024 |
0.11.3 | 323 | 4/5/2024 |
0.11.2 | 146 | 4/3/2024 |
0.11.1 | 2,477 | 3/26/2024 |
0.11.0 | 544 | 3/21/2024 |
0.11.0-rc2 | 77 | 3/19/2024 |
0.10.3 | 1,905 | 2/23/2024 |
0.10.2 | 972 | 2/2/2024 |
0.10.1 | 257 | 1/23/2024 |
0.10.0 | 77 | 1/23/2024 |
0.9.0 | 380 | 1/15/2024 |
0.8.0 | 217 | 1/9/2024 |
0.7.0 | 263 | 12/28/2023 |
0.6.0 | 4,618 | 11/10/2023 |
0.5.0 | 741 | 10/30/2023 |
0.4.3 | 323 | 10/9/2023 |
0.4.1 | 196 | 9/28/2023 |
0.4.0 | 105 | 9/26/2023 |
0.3.0 | 4,404 | 9/7/2023 |
0.2.1 | 1,998 | 8/21/2023 |
0.2.0 | 1,677 | 6/13/2023 |
0.1.10 | 560 | 4/18/2023 |
0.1.9 | 163 | 4/12/2023 |
0.1.9-preview.0.2 | 98 | 4/11/2023 |
0.1.6 | 325 | 3/24/2023 |
0.1.5 | 211 | 3/24/2023 |
0.1.4 | 208 | 3/24/2023 |
0.1.3 | 266 | 2/22/2023 |
0.1.2 | 240 | 2/21/2023 |
0.1.1 | 296 | 2/21/2023 |