1.MQTT服务器搭建

安装服务:

sudo snap install emqx-enterprise

安装桌面客户端

sudo snap install mqttx

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_dotnet

2.启动桌面客户端mqttx并连接服务器

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_服务器_02

连接成功 

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_emqx_03

 3.使用Telnet测试

成功访问

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_dotnet_04

 4.使用dotnet core 访问

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_emqx_05

5.dotnet core 实现mqtt消息发布

 

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_服务器_06

MQTT客户端代码: 

using MQTTnet;
using MQTTnet.Diagnostics.Logger;
using MQTTnet.Protocol;

public class MqttClientExample
{
    public static async Task Main(string[] args)
    {
        var mqttFactory = new MqttClientFactory();
        var mqttClientOptions = new MqttClientOptionsBuilder()
            .WithClientId("dotnet-client")
            .WithTcpServer("192.168.119.130", 1883)
            .Build();
 
        var mqttClient = mqttFactory.CreateMqttClient();
        await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None);
        Console.WriteLine("Connected to MQTT broker");
        
        while (true)
        {
            var applicationMessage = new MqttApplicationMessageBuilder()
                .WithTopic("test/topic")
                .WithPayload("time:" + DateTime.Now)
                .Build();
            var result = await mqttClient.PublishAsync(applicationMessage, CancellationToken.None);
            Console.WriteLine("成功向MQTT服务器发布消息.....IsSuccess:{0}",result.IsSuccess);
            await Task.Delay(1000);
        }
    }
}

6.登陆MQTT服务器查看已发布消息

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_dotnet core_07

添加消息订阅

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_mqtt_08

 成功订阅消息test/topic

EMQX开源MQTT服务搭建及Dotnet Core客户端访问_mqtt_09