Erweiterungen

This commit is contained in:
Sven committed 2024-03-19 15:29:11 +01:00
1 parent 2e00b98f10
commit 23693f47a4
4 files changed
+47 -48

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@ part 'job_del_message.g.dart';
@JsonSerializable() @JsonSerializable()
class JobDelMessage { class JobDelMessage {
late List<int> jobs; late int id;
JobDelMessage(); JobDelMessage();
@@ -7,10 +7,9 @@ part of 'job_del_message.dart';
// ************************************************************************** // **************************************************************************
JobDelMessage _$JobDelMessageFromJson(Map<String, dynamic> json) => JobDelMessage _$JobDelMessageFromJson(Map<String, dynamic> json) =>
JobDelMessage() JobDelMessage()..id = json['id'] as int;
..jobs = (json['jobs'] as List<dynamic>).map((e) => e as int).toList();
Map<String, dynamic> _$JobDelMessageToJson(JobDelMessage instance) => Map<String, dynamic> _$JobDelMessageToJson(JobDelMessage instance) =>
<String, dynamic>{ <String, dynamic>{
'jobs': instance.jobs, 'id': instance.id,
}; };
+2 -2
View File
@@ -1,6 +1,6 @@
class JobDeletedMessage { class JobDeletedMessage {
final int jobId; final int id;
JobDeletedMessage({required this.jobId}); JobDeletedMessage({required this.id});
} }
+42 -42
View File
@@ -2,8 +2,6 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:mqtt_client/mqtt_client.dart'; import 'package:mqtt_client/mqtt_client.dart';
import 'package:mqtt_client/mqtt_server_client.dart'; import 'package:mqtt_client/mqtt_server_client.dart';
@@ -148,51 +146,55 @@ class MqttCore {
void _setupSubscriptions() async { void _setupSubscriptions() async {
Util.logInfo('_setupSubscriptions called'); Util.logInfo('_setupSubscriptions called');
_mqttClient.updates?.listen((List<MqttReceivedMessage<MqttMessage>> c) { _mqttClient.updates?.listen((List<MqttReceivedMessage<MqttMessage>> messages) {
try { try {
final MqttPublishMessage message = c[0].payload as MqttPublishMessage; for (var mqttMessage in messages) {
String payload = utf8.decode(MqttPublishPayload.bytesToStringAsString(message.payload.message).codeUnits); final MqttPublishMessage message = mqttMessage.payload as MqttPublishMessage;
var topic = message.variableHeader?.topicName; String payload = utf8.decode(MqttPublishPayload.bytesToStringAsString(message.payload.message).codeUnits);
var topic = message.variableHeader?.topicName;
Util.logInfo('message received'); if (topic!.endsWith(_clientId)) {
Util.logInfo('topic: $topic'); Util.logInfo('message received');
Util.logInfo('mesage: $payload'); Util.logInfo('topic: $topic');
Util.logInfo('mesage: $payload');
var topicArray = topic!.split('/'); var topicArray = topic.split('/');
var messageType = topicArray[3]; var messageType = topicArray[3];
switch(messageType) { switch(messageType) {
case 'session': case 'session':
_sessionMessageReceived(jsonDecode(payload)); _sessionMessageReceived(jsonDecode(payload));
break; break;
case 'status': case 'status':
_statusMessageReceived(jsonDecode(payload)); _statusMessageReceived(jsonDecode(payload));
break; break;
case 'ranking': case 'ranking':
_rankingMessageReceived(jsonDecode(payload)); _rankingMessageReceived(jsonDecode(payload));
break; break;
case 'job': case 'job':
_jobMessageReceived(jsonDecode(payload)); _jobMessageReceived(jsonDecode(payload));
break; break;
case 'job_del': case 'job_del':
_jobDeleteReceived(jsonDecode(payload)); _jobDeleteReceived(jsonDecode(payload));
break; break;
case 'sync_request': case 'sync_request':
_syncRequestReceived(jsonDecode(payload)); _syncRequestReceived(jsonDecode(payload));
break; break;
case "mssg": case "mssg":
_messageMessageReceived(payload); _messageMessageReceived(payload);
break; break;
default: default:
Util.logInfo('Unknown topic: $messageType'); Util.logInfo('Unknown topic: $messageType');
break; break;
}
}
} }
} catch(ex) { } catch(ex) {
Util.logException(ex.toString()); Util.logException(ex.toString());
@@ -268,13 +270,11 @@ class MqttCore {
void _jobDeleteReceived(payloadData) async { void _jobDeleteReceived(payloadData) async {
var jobDelMessage = JobDelMessage.fromJson(payloadData); var jobDelMessage = JobDelMessage.fromJson(payloadData);
for(var jobId in jobDelMessage.jobs) { await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.writeTxn(() async { await MyApp.isarInstance.jobs.delete(jobDelMessage.id);
await MyApp.isarInstance.jobs.delete(jobId); });
});
MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(jobId: jobId)); MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: jobDelMessage.id));
}
} }
void _syncRequestReceived(payloadData) async { void _syncRequestReceived(payloadData) async {