Erweiterungen
This commit is contained in:
1 parent
2e00b98f10
commit
23693f47a4
4 files changed
+47
-48
No files matched your search
@@ -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,
|
||||||
};
|
};
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
class JobDeletedMessage {
|
class JobDeletedMessage {
|
||||||
final int jobId;
|
final int id;
|
||||||
|
|
||||||
JobDeletedMessage({required this.jobId});
|
JobDeletedMessage({required this.id});
|
||||||
}
|
}
|
||||||
+42
-42
@@ -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 {
|
||||||
|
|||||||
Reference in new issue
Block a user