一个Flutter版MQTT工具

302 阅读1分钟

在2018年的时候第一次做了一个Flutter项目的Demo,那会不管是Dart,Flutter还是社区都很不完善,自己没有持续去做跨平台。但是如今2024年不管是社区还是用人市场已经完全不同,Flutter能够给到大多数项目强有力的框架支持,IOS和安卓两端原生开发对于很多创业公司甚至是中型公司来说有较高的人力成本,其次Flutter系统和三方组件越来越丰富,做一个良好体验的APP变得简单

这次分享一个自己做的Flutter版本MQTT调试工具,大家都知道MQTT是一个应用层的订阅发布协议,不管是手机端还是IOT设备端都是一个普通的客户端Client,在集成初期项目还没有完整的封装,可以用这款工具安装在你的手机配合服务端联调,或者配合MQTTX桌面版互相订阅和发布主题,通过简单的收发,MQTT的数据交互过程很快在你脑海中有了清晰的印象


页面截图

20240626-193214.jpeg

1719400061541.jpg


核心代码 github仓库传送

// 发起连接
_connectMqtt(){
  if (_addressStr.isEmpty) {
    showDialog(
      context: context,
      builder: (context) {
        return const AlertDialog(
          title: Text('提示'),
          content: Text('请输入服务器地址'),
        );
      },
    );
    return;
  }
  mqttRequest.connectClient(_addressStr, _clientStr, int.parse(_portStr));
}

// 断开连接
_disConnectMqtt(){
  mqttRequest.disConnect();
}

// 订阅主题
_subscribeTopic(){
  mqttRequest.mqttClient.subscribe(_topicStr, MqttQos.atLeastOnce);
}

// 取消订阅
_cancelSubscribeTop(){
  mqttRequest.mqttClient.unsubscribe(_topicStr);
}

// 发布主题
_publishMessage(){
  final builder = MqttClientPayloadBuilder();
  builder.addString(_messageStr);
  mqttRequest.mqttClient.publishMessage(_topicStr, MqttQos.atLeastOnce, builder.payload!);
}