1

我需要帮助,我无法与经纪人联系。我在我的 api 项目 .net 核心中使用MQTTNet库,这是我的代码:

// GET: api/<SendCommandController>
[HttpGet]
public void Get()
{

    var options = new MqttClientOptionsBuilder()
    .WithTcpServer("broker.hivemq.com", 1883)
    .Build();

    var factory = new MqttFactory();
    var mqttClient = factory.CreateMqttClient();

    mqttClient.ConnectAsync(options, CancellationToken.None);

    var message = new MqttApplicationMessageBuilder()
    .WithTopic("Test/Mqtt")
    .WithPayload("Hello World")
    .WithExactlyOnceQoS()
    .WithRetainFlag()
    .Build();

    mqttClient.PublishAsync(message, CancellationToken.None); 
}

所以我按照教程进行操作,但无法连接到代理 hivemq,也无法连接到我的个人代理。所以,我用 mqtt.fx 测试了 hivemq 代理并且可以正常工作。只有在代码中返回是连接的 = false。

有任何想法吗?错误是“客户端未连接”

在此处输入图像描述

4

1 回答 1

3

C# 不是我用过很多的语言,但我假设你错过了一个awaitbeforemqttClient.ConnectAsync(options, CancellationToken.None);所以其余代码在尝试发送消息之前等待连接完成

于 2021-06-10T13:39:05.757 回答