DEV Community

Daniel Olivares
Daniel Olivares

Posted on • Edited on

¿Sabías que con C# puedes suscribirte a un broker MQTT en menos de 10 líneas?

Siempre vemos ejemplos de Python o Node.js en IoT, pero la verdad es que C# también es sorprendentemente sencillo, robusto y seguro. En este breve tutorial vamos a:

  1. Conectar nuestro cliente .NET a un broker público (HiveMQ).
  2. Suscribirnos a un tópico (iot/puerta/estado).
  3. Mostrar en consola los mensajes que llegan.

¿Qué necesitás?

  • .NET 8 SDK
  • La librería MQTTnet
  • Un broker MQTT público (usaremos broker.hivemq.com:1883)
  • ¡Ganas de automatizar y experimentar!

Código de ejemplo

using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Options;
using System;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // 1. Configuramos las opciones del cliente
        var options = new MqttClientOptionsBuilder()
            .WithTcpServer("broker.hivemq.com", 1883)
            .WithClientId("dotnet-iot-demo")
            .Build();

        // 2. Creamos el cliente y definimos handlers
        var factory = new MqttFactory();
        var client = factory.CreateMqttClient();

        client.UseConnectedHandler(async _ =>
        {
            Console.WriteLine("Conectado a HiveMQ");
            await client.SubscribeAsync("iot/puerta/estado");
            Console.WriteLine("Suscrito a: iot/puerta/estado");
        });

        client.UseApplicationMessageReceivedHandler(e =>
        {
            var payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
            Console.WriteLine($"Mensaje recibido: {payload}");
            // Aquí podrías, por ejemplo:
            // • Registrar un evento en tu base de datos
            // • Activar una alerta por e-mail o SMS
            // • Enviar la info a un dashboard web
        });

        // 3. Conectamos y esperamos mensajes
        await client.ConnectAsync(options);
        Console.WriteLine("Presioná ENTER para salir...");
        Console.ReadLine();
    }
}
Enter fullscreen mode Exit fullscreen mode

¿Por qué C# + MQTTnet?

  • Simplicidad: La API es intuitiva y con poco código ya tenés un cliente funcional.
  • Rendimiento: .NET es rápido y ligero, ideal para apps que corran en Raspberry Pi o Windows IoT.
  • Seguridad: MQTTnet soporta TLS y autenticación, clave para proteger tu proyect IoT.

¡En el siguiente post veremos como agregar autenticación básica a nuestro proyecto!

Top comments (0)