加入重连机制忽略日志记录错误

This commit is contained in:
2025-03-05 14:10:03 +08:00
parent a2155976f3
commit a15345adeb
5 changed files with 96 additions and 26 deletions

View File

@@ -23,16 +23,25 @@ class Mqtt {
if (_client != null) {
return true;
}
_client = MqttServerClient.withPort(_config.host,
"${_config.clientId}_${DateTime.now().millisecondsSinceEpoch}", _config.port);
_client = MqttServerClient.withPort(
_config.host,
"${_config.clientId}_${DateTime.now().millisecondsSinceEpoch}",
_config.port);
_client?.autoReconnect = true;
await _client?.connect(_config.username, _config.password);
var state = await _client?.connect(_config.username, _config.password);
if (state!.state != MqttConnectionState.connected) {
//连接失败
print("mqtt连接失败: 地址:${_config.host} 原因:$state");
return false;
}
print("mqtt服务器: ${_config.host} 连接成功");
_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!);
// MqttUtilities.bytesToStringAsString(recMess.payload.message!);
_config.messgae(message[0].topic!, payload);
});
_config.topic?.forEach((topic) {