更新http服务器 剔除反射功能
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:mqtt5_client/mqtt5_client.dart';
|
||||
import 'package:mqtt5_client/mqtt5_server_client.dart';
|
||||
@@ -29,7 +30,14 @@ class Mqtt {
|
||||
_config.port);
|
||||
_client?.autoReconnect = true;
|
||||
|
||||
var state = await _client?.connect(_config.username, _config.password);
|
||||
MqttConnectionStatus? state;
|
||||
try {
|
||||
state = await _client?.connect(_config.username, _config.password);
|
||||
} catch (e) {
|
||||
//连接错误
|
||||
print("mqtt连接失败: 地址:${_config.host} 原因:$e");
|
||||
return false;
|
||||
}
|
||||
if (state!.state != MqttConnectionState.connected) {
|
||||
//连接失败
|
||||
print("mqtt连接失败: 地址:${_config.host} 原因:$state");
|
||||
@@ -39,10 +47,20 @@ class Mqtt {
|
||||
|
||||
_client?.updates.listen((List<MqttReceivedMessage<MqttMessage>> message) {
|
||||
final recMess = message[0].payload as MqttPublishMessage;
|
||||
final payload = Utf8Decoder().convert(recMess.payload.message!);
|
||||
// final payload =
|
||||
// MqttUtilities.bytesToStringAsString(recMess.payload.message!);
|
||||
_config.messgae(message[0].topic!, payload);
|
||||
try {
|
||||
if (_config.messgae != null) {
|
||||
final payload = Utf8Decoder().convert(recMess.payload.message!);
|
||||
// final payload =
|
||||
// MqttUtilities.bytesToStringAsString(recMess.payload.message!);
|
||||
_config.messgae!(message[0].topic!, payload);
|
||||
} else if (_config.buffMessage != null) {
|
||||
_config.buffMessage!(
|
||||
message[0].topic!, recMess.payload.message!.buffer.asUint8List());
|
||||
}
|
||||
} catch (e) {
|
||||
//转字符串失败
|
||||
print(e);
|
||||
}
|
||||
});
|
||||
_config.topic?.forEach((topic) {
|
||||
subscribe(topic, _config.qos);
|
||||
@@ -80,13 +98,17 @@ class MqttConfig {
|
||||
String? password;
|
||||
List<String>? topic;
|
||||
int qos;
|
||||
Function(String topic, String message) messgae;
|
||||
//文本消息
|
||||
Function(String topic, String message)? messgae;
|
||||
//二进制消息
|
||||
Function(String topic, Uint8List buff)? buffMessage;
|
||||
|
||||
MqttConfig(
|
||||
{required this.host,
|
||||
this.port = 1883,
|
||||
required this.clientId,
|
||||
required this.messgae,
|
||||
this.messgae,
|
||||
this.buffMessage,
|
||||
this.topic,
|
||||
this.qos = 0,
|
||||
this.username,
|
||||
|
||||
Reference in New Issue
Block a user