Fehlerkorrekturen

This commit is contained in:
Sven committed 2024-02-28 20:42:22 +01:00
1 parent 5411da55b7
commit 4070fc81a6
6 files changed
+706 -26

No files matched your search

+42 -18
View File
@@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:isar/isar.dart';
import 'package:mqtt_client/mqtt_client.dart';
import 'package:mqtt_client/mqtt_server_client.dart';
import 'package:stadtbote/model/enqueued_message.dart';
import 'package:stadtbote/model/ranking.dart';
import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
@@ -131,31 +132,27 @@ class MqttCore {
}
publishText(String topic, String text) {
try {
var buffer = Uint8Buffer();
buffer.addAll(text.codeUnits);
var buffer = Uint8Buffer();
buffer.addAll(text.codeUnits);
_mqttClient.publishMessage(topic, MqttQos.exactlyOnce, buffer);
_mqttClient.publishMessage(topic, MqttQos.exactlyOnce, buffer);
Util.logInfo("message $text send to $topic");
} catch (e) {
Util.logException(e.toString());
}
Util.logInfo("message $text send to $topic");
}
publishPayloadMessage(String receiver, Map<String, dynamic> payload) {
publishPayloadMessage(String topic, Map<String, dynamic> payload) {
var payloadContainer = PayloadContainer();
payloadContainer.id = const Uuid().v4().toString();
payloadContainer.recv = topic;
payloadContainer.store = true;
payloadContainer.payload = payload;
var json = jsonEncode(payloadContainer.toJson());
try {
var payloadContainer = PayloadContainer();
payloadContainer.id = const Uuid().v4().toString();
payloadContainer.recv = receiver;
payloadContainer.store = true;
payloadContainer.payload = payload;
var json = jsonEncode(payloadContainer.toJson());
publishText(_toServerTopic, json);
} catch (e) {
Util.logException(e.toString());
_enqueueMessage(topic, jsonEncode(payloadContainer.toJson()));
}
}
@@ -234,6 +231,8 @@ class MqttCore {
await _sendSyncMessage();
await _sendEnqueuedMessages();
var sessionStatusMessage = SessionStatus.fromJson(payloadData['status']);
await MyApp.isarInstance.writeTxn(() async {
@@ -457,4 +456,29 @@ class MqttCore {
_trackTimer = null;
}
}
void _enqueueMessage(String receiver, String payload) async {
var enqueuedMessage = EnqueuedMessage();
enqueuedMessage.topic = receiver;
enqueuedMessage.payload = payload;
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.enqueuedMessages.put(enqueuedMessage);
});
}
_sendEnqueuedMessages() async {
var enqueuedMessages = await MyApp.isarInstance.enqueuedMessages.where().findAll();
if (enqueuedMessages.isNotEmpty) {
for (var enqueuedMessage in enqueuedMessages) {
try {
publishText(enqueuedMessage.topic, enqueuedMessage.payload);
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.enqueuedMessages.delete(enqueuedMessage.id);
});
} catch (ex) {}
}
}
}
}