Fehlerkorrekturen
This commit is contained in:
1 parent
5411da55b7
commit
4070fc81a6
6 files changed
+706
-26
No files matched your search
+42
-18
@@ -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) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user