You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中使用mqtt_client实现发布topic1并监听topic2可行吗?

可以实现,以下是具体修改方案
  • 区分发布与监听的主题配置
    由于现在发布和监听的主题不同,需要将两者分开存储。你可以修改MQTTManager的构造函数,新增对应参数来支持动态配置:

    MQTTManager(
        {required String host,
        required String publishTopic,
        required String listenTopic,
        required String identifier,
        required MQTTAppState state})
        : _identifier = 'id',
          _host = '48.38.96.88',
          _publishTopic = publishTopic,
          _listenTopic = listenTopic,
          _currentState = state;
    

    如果暂时不需要动态配置,也可以直接硬编码主题:

    // 替换原有的单一_topic定义
    final String _publishTopic = 'topic1';
    final String _listenTopic = 'topic2';
    
  • 修改连接成功后的订阅逻辑
    在onConnected方法中,将订阅的主题从原来的topic1改为topic2:

    void onConnected() {
      _currentState.setAppConnectionState(MQTTAppConnectionState.connected);
      print('EXAMPLE::Mosquitto client connected....');
      // 订阅监听topic2
      _client!.subscribe(_listenTopic, MqttQos.atLeastOnce);
      _client!.updates!.listen((List<MqttReceivedMessage<MqttMessage?>>? c) {
        final MqttPublishMessage recMess = c![0].payload as MqttPublishMessage;
        final String pt =
            MqttPublishPayload.bytesToStringAsString(recMess.payload.message!);
        _currentState.setReceivedText(pt);
        print(
            'EXAMPLE::Change notification:: topic is <${c[0].topic}>, payload is <-- $pt -->');
        print('');
      });
      print(
          'EXAMPLE::OnConnected client callback - Client connection was sucessful');
    }
    
  • 确保消息发布到topic1
    找到你项目中发布消息的代码,确认发布目标是_publishTopic(即topic1),示例发布代码如下:

    void publishMessage(String message) {
      final MqttClientPayloadBuilder builder = MqttClientPayloadBuilder();
      builder.addString(message);
      _client!.publishMessage(
        _publishTopic,
        MqttQos.atLeastOnce,
        builder.payload!,
      );
    }
    

完成以上修改后,你的应用就能向topic1发布消息,同时监听topic2上的回复了。

内容的提问来源于stack exchange,提问作者Johan Scheepers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 08:03:33