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