【问题标题】:MqttBrowserClient fails to connect due to missing conack packageMqttBrowserClient 由于缺少 conack 包而无法连接
【发布时间】:2022-10-25 18:05:49
【问题描述】:

我正在尝试通过颤振制作 webapp,它将连接到 HIVE 代理。我从官方网站上获取代理名称,将端口号设置为 8000,就像那里提到的那样,仍然收到如下错误消息:

错误是 mqtt-client::NoConnectionException: 已超出允许的最大连接尝试 ({1})。代理没有响应连接请求消息(缺少连接确认?

我真的不知道如何进行。有人可以帮忙吗? 下面是我的代码:

MqttBrowserClient mq = MqttBrowserClient(
    'wss://broker.mqttdashboard.com:8000', '',
    maxConnectionAttempts: 1);

/*

MqttBrowserClient mq = MqttBrowserClient('ws://test.mosquitto.org', 'client-1',
    maxConnectionAttempts: 1);

 */
class mqttService {
  Future<MqttBrowserClient?> connectToServer() async {
    try {
      final connMess = MqttConnectMessage()
          .withClientIdentifier('clientz5tWzoydVL')
          .authenticateAs('a14guguliye', 'z5tWzoydVL')
          .withWillTopic('willtopic')
          .withWillMessage('My Will message')
          .startClean() // Non persistent session for testing
          .withWillQos(MqttQos.atLeastOnce);

      mq.port = 1883;
      mq.keepAlivePeriod = 50;
      mq.connectionMessage = connMess;
      mq.websocketProtocols = MqttClientConstants.protocolsSingleDefault;
      mq.onConnected = onConnected;

      var status = await mq.connect();
      return mq;
    } catch (e) {
      print("error is " + e.toString());
      mq.disconnect();
      return null;
    }
  }
}

【问题讨论】:

    标签: flutter mqtt flutter-web


    【解决方案1】:

    该端口 8000 可能已打开,但 HiveMQ 代理可能未在侦听。确保代理已完全启动并绑定到该 IP:Port 组合。

    在 HiveMQ 代理启动输出中,您应该看到类似于以下内容的内容:

    Started Websocket Listener on address 0.0.0.0 and on port 8000
    

    如果需要,HiveMQ Broker configuration documentation is here

    您可以使用公共HiveMQ MQTT Websocket demo client 来测试您的连接,以确保它不是本地代码问题。

    作为最后一个选项,使用Wireshark 使用tcp.port == 1883 and mqtt 过滤器监控MQTT 流量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      相关资源
      最近更新 更多