flutter 通过网络控制设备 emqx mqtt_client

WiFi插件: mqtt_client: ^10.5.1
JWT加密: dart_jsonwebtoken: ^2.14.1

连接设备

class WifiConnectVoid {
   
   
  static void wifiConnectVoid(
      {
   
   String? deviceModelId,
      String? deviceActivatedAt,
      String? deviceId,
      String? name,
      String? modelName,
      String? sn,
      bool reConnect = false,
      Function? callback}) async {
   
   
    DeviceConnectTypeWifiBlueGet deviceConnectTypeWifiBlueGet =
        Get.put(DeviceConnectTypeWifiBlueGet());
    GlobalWiFiBluetooth globalWiFiBluetooth = Get.put(GlobalWiFiBluetooth());
    if (modelName == null || sn == null) {
   
   
      EasyLoading.showError("wifi_connect_error".tr);
      globalWiFiBluetooth.isHaveDeviceVoid(false);
      return;
    }


    if (deviceConnectTypeWifiBlueGet.client != null &&
        deviceConnectTypeWifiBlueGet.client!.connectionStatus!.state ==
            MqttConnectionState.connected &&
        globalWiFiBluetooth.addNewDeviceSn.value == sn) {
   
   
      if (!reConnect) {
   
   
        //ping机器
        WiFiPush.wifiPush(WriteBluetoothMsgPing.writeBluetoothMsgPing(flag: 1));
      } else {
   
   
        WiFiPush.wifiPush(WriteBluetoothMsgPing.writeBluetoothMsgPing());
      }
      if (callback != null) {
   
   
        callback();
      }
    } else {
   
   
      if (deviceConnectTypeWifiBlueGet.client != null &&
          deviceConnectTypeWifiBlueGet.client!.connectionStatus!.state ==
              MqttConnectionState.connected &&
          globalWiFiBluetooth.addNewDeviceSn.value != sn) {
   
   
        try {
   
   
          deviceConnectTypeWifiBlueGet.client!.disconnect();
        } catch (_) {
   
   
          deviceConnectTypeWifiBlueGet.client!.disconnect();
        }
      }
      SharedPreferences preferences = await SharedPreferences.getInstance();
      String email = preferences.getString("gen_ki_nno_email") ?? "";
      MqttServerClient client = MqttServerClient(
        '域名',
        email,
      );

      // 要编码的数据
      final jwt = 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值