Umbau MQTT

This commit is contained in:
Sven committed 2024-04-08 10:22:12 +02:00
1 parent a683ea0ff1
commit 31a292e8d0
6 files changed
+1160 -21

No files matched your search

+22 -20
View File
@@ -97,14 +97,14 @@ class MqttCore {
_mqttClient = MqttServerClient.withPort(_brokerUri, clientId, _brokerPort);
_mqttClient.logging(on: false);
_mqttClient.keepAlivePeriod = 20;
_mqttClient.autoReconnect = false;
_mqttClient.keepAlivePeriod = 5;
_mqttClient.disconnectOnNoResponsePeriod = 10;
_mqttClient.autoReconnect = true;
_mqttClient.onDisconnected = _clientDisconnected;
_mqttClient.onAutoReconnect = _clientDisconnected;
_mqttClient.onAutoReconnected = _clientConnected;
_mqttClient.connectionMessage = MqttConnectMessage()
.withClientIdentifier(await Util.getAppUuid())
.withWillQos(MqttQos.atMostOnce)
.withWillTopic('willTopic')
.withWillMessage('willMessage')
.authenticateAs("app", "apppwd");
await _mqttClient.connect();
@@ -121,13 +121,9 @@ class MqttCore {
Util.logInfo('Verbindung zum MQTT-Broker fehlgeschlagen!');
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.notConnected));
_startReconnectTimer();
}
} catch (ex) {
_startReconnectTimer();
Util.logInfo('Verbindung zum MQTT-Broker fehlgeschlagen!: $ex');
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.notConnected));
@@ -350,7 +346,7 @@ class MqttCore {
publishBinary(topic, gzipBytes!);
}
void _startReconnectTimer() {
void _startBootstrapReconnectTimer() {
connectionState = ConnectionStateEnum.notConnected;
if (!_disconnectInProgress) {
@@ -371,17 +367,23 @@ class MqttCore {
}
void _clientDisconnected() {
connectionState = ConnectionStateEnum.notConnected;
_cancelTrackTimer();
Util.logInfo("_clientDisconnected called");
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.notConnected));
connectionState = ConnectionStateEnum.notConnected;
if (!_disconnectInProgress) {
_startReconnectTimer();
}
_startTrackTimer();
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.notConnected));
}
void _clientConnected() {
Util.logInfo("_clientDisconnected called");
connectionState = ConnectionStateEnum.connected;
_initSession();
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.connected));
}
void _processBootstrap() async {
@@ -405,7 +407,7 @@ class MqttCore {
var jsonMap = handshakeMessage.toJson();
var json = jsonEncode(jsonMap);
var uri = "https://init-x.assecutor.de/bootstrap?get_mqtt_broker=$json";
String uri = "https://init-x.assecutor.de/bootstrap?get_mqtt_broker=$json";
Util.logInfo("Bootstrap request: $uri");
var response = await http.get(Uri.parse(uri));
@@ -421,7 +423,7 @@ class MqttCore {
_connectToBroker();
} catch (ex) {
_startReconnectTimer();
_startBootstrapReconnectTimer();
}
}