Skip to main content

Namespaces

The HiveMQ MQTT client library is organized into namespaces that group related functionality. This page helps you understand which namespaces to import for different use cases.

Quick Reference

For most applications, you only need these two imports:

using HiveMQtt.Client;       // Client classes and builders
using HiveMQtt.MQTT5.Types; // QoS levels, topic filters, etc.

Namespace Reference

Core Namespaces

NamespacePurposeCommon Classes
HiveMQtt.ClientMain client classes and buildersHiveMQClient, RawClient, HiveMQClientOptionsBuilder, SubscribeOptionsBuilder, PublishMessageBuilder
HiveMQtt.MQTT5.TypesMQTT protocol types and enumsQualityOfService, RetainHandling, TopicFilter, MQTT5PublishMessage

Additional Namespaces

NamespacePurposeWhen to Use
HiveMQtt.Client.OptionsOptions classesWhen working directly with options classes instead of builders
HiveMQtt.Client.ResultsOperation result classesWhen inspecting detailed results from operations
HiveMQtt.Client.EventsEvent argument classesWhen creating typed event handlers
HiveMQtt.Client.ExceptionsException classesWhen catching specific client exceptions
HiveMQtt.Client.ReasonCodesReason code enumsWhen checking specific QoS reason codes
HiveMQtt.MQTT5.PacketsLow-level packet classesFor packet-level event handling or debugging
HiveMQtt.MQTT5.ReasonCodesProtocol-level reason codesWhen checking specific MQTT reason codes

Usage Examples

Basic Publishing and Subscribing

using HiveMQtt.Client;
using HiveMQtt.MQTT5.Types;

var client = new HiveMQClient();
await client.ConnectAsync();
await client.SubscribeAsync("topic", QualityOfService.AtLeastOnceDelivery);
await client.PublishAsync("topic", "Hello!");

Working with Events

using HiveMQtt.Client;
using HiveMQtt.Client.Events;

client.OnMessageReceived += (sender, args) =>
{
// args is OnMessageReceivedEventArgs
Console.WriteLine(args.PublishMessage.PayloadAsString);
};

Checking Results

using HiveMQtt.Client;
using HiveMQtt.Client.Results;
using HiveMQtt.MQTT5.ReasonCodes;

var result = await client.ConnectAsync();
if (result.ReasonCode == ConnAckReasonCode.Success)
{
Console.WriteLine("Connected successfully!");
}

Exception Handling

using HiveMQtt.Client;
using HiveMQtt.Client.Exceptions;

try
{
await client.ConnectAsync();
}
catch (HiveMQttClientException ex)
{
Console.WriteLine($"Client error: {ex.Message}");
}