如何在后台服务flutter中调用mqtt客户端

How to call mqtt client in background service flutter

我的项目使用 mqtt 进行通知。并且需要实时通知。 我有这样的 mqtt class

class Mqtt {
...

  Mqtt._() {
    mqttClient = MqttServerClient.withPort(server, clientIdentifier, port);

    ///Successful connection callback
    mqttClient.onConnected = _onConnected;

    ///Disconnected callback
    mqttClient.onDisconnected = _onDisconnected;

    ///Subscription success callback
    mqttClient.onSubscribed = _onSubscribed;

    ///Subscription failure callback
    mqttClient.onSubscribeFail = _onSubscribeFail;
  }

  static Mqtt getInstance() {
    if (_instance == null) {
      _instance = Mqtt._();
    }
    return _instance!;
  }

  ///connection
  connect() {
    mqttClient.connect();
    _log("connecting");
  }

...
}

然后我这样称呼

Mqtt mqtt = Mqtt.getInstance();
mqtt.subTopic = 'NOTIFICATION/';
mqtt.connect();

但是当应用程序停止时,mqtt 会断开连接。 如何在后台服务flutter中调用mqtt客户端?

检查flutter foreground service它可能对你有帮助。