bug fix
This commit is contained in:
@@ -67,7 +67,11 @@ class EasyDartModule {
|
|||||||
WebServer.setInstance(ShelfWebServer(logger));
|
WebServer.setInstance(ShelfWebServer(logger));
|
||||||
//Dio组件
|
//Dio组件
|
||||||
TraceDio.setInstance(TraceDio(logger));
|
TraceDio.setInstance(TraceDio(logger));
|
||||||
|
} else {
|
||||||
|
//无日志Dio
|
||||||
|
TraceDio.setInstance(TraceDio(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (webSocketConfig != null) {
|
if (webSocketConfig != null) {
|
||||||
WebSocket.setInstance(WebSocket(webSocketConfig));
|
WebSocket.setInstance(WebSocket(webSocketConfig));
|
||||||
websocket.connect();
|
websocket.connect();
|
||||||
|
|||||||
@@ -5,20 +5,20 @@ import 'package:uuid/uuid.dart';
|
|||||||
|
|
||||||
class TraceDio {
|
class TraceDio {
|
||||||
final Dio _dio;
|
final Dio _dio;
|
||||||
final Logger _logger;
|
final Logger? _logger;
|
||||||
final Uuid uuid = Uuid();
|
final Uuid uuid = Uuid();
|
||||||
|
|
||||||
static late TraceDio _traceDio;
|
static late TraceDio _traceDio;
|
||||||
String? token;
|
String? token;
|
||||||
|
|
||||||
TraceDio(Logger logger)
|
TraceDio(Logger? logger)
|
||||||
: _dio = Dio(),
|
: _dio = Dio(),
|
||||||
_logger = logger {
|
_logger = logger {
|
||||||
// 配置 Dio
|
// 配置 Dio
|
||||||
// 设置连接超时
|
// 设置连接超时
|
||||||
_dio.options.connectTimeout = Duration(seconds: 5);
|
_dio.options.connectTimeout = Duration(seconds: 60);
|
||||||
// 设置接收超时
|
// 设置接收超时
|
||||||
_dio.options.receiveTimeout = Duration(seconds: 5);
|
_dio.options.receiveTimeout = Duration(seconds: 60);
|
||||||
//保留原始大小写
|
//保留原始大小写
|
||||||
_dio.options.preserveHeaderCase = true;
|
_dio.options.preserveHeaderCase = true;
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ class TraceDio {
|
|||||||
options.headers['X-Span-ID'] = spanId;
|
options.headers['X-Span-ID'] = spanId;
|
||||||
}
|
}
|
||||||
// 记录请求日志
|
// 记录请求日志
|
||||||
_logger.info('Sending request: ${options.method} ${options.uri}',
|
_logger?.info('Sending request: ${options.method} ${options.uri}',
|
||||||
tag: "DIO", traceId: traceId, spanId: spanId);
|
tag: "DIO", traceId: traceId, spanId: spanId);
|
||||||
return handler.next(options); // 继续请求
|
return handler.next(options); // 继续请求
|
||||||
},
|
},
|
||||||
@@ -44,7 +44,7 @@ class TraceDio {
|
|||||||
// 记录响应日志
|
// 记录响应日志
|
||||||
String? traceId = response.headers.value('X-Trace-ID');
|
String? traceId = response.headers.value('X-Trace-ID');
|
||||||
String? spanId = response.headers.value('X-Span-ID');
|
String? spanId = response.headers.value('X-Span-ID');
|
||||||
_logger.info(
|
_logger?.info(
|
||||||
'Response received: ${response.statusCode} ${response.statusMessage}',
|
'Response received: ${response.statusCode} ${response.statusMessage}',
|
||||||
tag: "DIO",
|
tag: "DIO",
|
||||||
traceId: traceId,
|
traceId: traceId,
|
||||||
@@ -58,7 +58,7 @@ class TraceDio {
|
|||||||
// 记录错误日志
|
// 记录错误日志
|
||||||
String? traceId = e.requestOptions.headers['X-Trace-ID'];
|
String? traceId = e.requestOptions.headers['X-Trace-ID'];
|
||||||
String? spanId = e.requestOptions.headers['X-Span-ID'];
|
String? spanId = e.requestOptions.headers['X-Span-ID'];
|
||||||
_logger.error('Request failed: ${e.message}',
|
_logger?.error('Request failed: ${e.message}',
|
||||||
tag: "DIO", traceId: traceId, spanId: spanId);
|
tag: "DIO", traceId: traceId, spanId: spanId);
|
||||||
return handler.next(e); // 继续处理错误
|
return handler.next(e); // 继续处理错误
|
||||||
},
|
},
|
||||||
@@ -93,45 +93,57 @@ class TraceDio {
|
|||||||
Future<Response> get(String url,
|
Future<Response> get(String url,
|
||||||
{Map<String, dynamic>? queryParameters,
|
{Map<String, dynamic>? queryParameters,
|
||||||
sf.Request? request,
|
sf.Request? request,
|
||||||
ResponseType? responseType}) async {
|
ResponseType? responseType,
|
||||||
|
Duration? receiveTimeout}) async {
|
||||||
return await _dio.get(url,
|
return await _dio.get(url,
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
options: Options(
|
options: Options(
|
||||||
headers: getHeader(request: request), responseType: responseType));
|
receiveTimeout: receiveTimeout,
|
||||||
|
headers: getHeader(request: request),
|
||||||
|
responseType: responseType));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发起 POST 请求
|
// 发起 POST 请求
|
||||||
Future<Response> post(String url,
|
Future<Response> post(String url,
|
||||||
{Object? data,
|
{Object? data,
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
sf.Request? request}) async {
|
sf.Request? request,
|
||||||
|
Duration? receiveTimeout}) async {
|
||||||
return await _dio.post(url,
|
return await _dio.post(url,
|
||||||
data: data,
|
data: data,
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
options: Options(headers: getHeader(request: request)));
|
options: Options(
|
||||||
|
receiveTimeout: receiveTimeout,
|
||||||
|
headers: getHeader(request: request)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发起 PUT 请求
|
// 发起 PUT 请求
|
||||||
Future<Response> put(String url,
|
Future<Response> put(String url,
|
||||||
{Object? data,
|
{Object? data,
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
sf.Request? request}) async {
|
sf.Request? request,
|
||||||
|
Duration? receiveTimeout}) async {
|
||||||
return await _dio.put(url,
|
return await _dio.put(url,
|
||||||
data: data,
|
data: data,
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
options: Options(headers: getHeader(request: request)));
|
options: Options(
|
||||||
|
receiveTimeout: receiveTimeout,
|
||||||
|
headers: getHeader(request: request)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发起 DELETE 请求
|
// 发起 DELETE 请求
|
||||||
Future<Response> delete(String url,
|
Future<Response> delete(String url,
|
||||||
{Object? data,
|
{Object? data,
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
sf.Request? request}) async {
|
sf.Request? request,
|
||||||
|
Duration? receiveTimeout}) async {
|
||||||
return await _dio.delete(
|
return await _dio.delete(
|
||||||
url,
|
url,
|
||||||
data: data,
|
data: data,
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
options: Options(headers: getHeader(request: request)),
|
options: Options(
|
||||||
|
receiveTimeout: receiveTimeout,
|
||||||
|
headers: getHeader(request: request)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:mqtt5_client/mqtt5_client.dart';
|
import 'package:mqtt5_client/mqtt5_client.dart';
|
||||||
import 'package:mqtt5_client/mqtt5_server_client.dart';
|
import 'package:mqtt5_client/mqtt5_server_client.dart';
|
||||||
|
|
||||||
@@ -28,8 +30,9 @@ class Mqtt {
|
|||||||
await _client?.connect(_config.username, _config.password);
|
await _client?.connect(_config.username, _config.password);
|
||||||
_client?.updates.listen((List<MqttReceivedMessage<MqttMessage>> message) {
|
_client?.updates.listen((List<MqttReceivedMessage<MqttMessage>> message) {
|
||||||
final recMess = message[0].payload as MqttPublishMessage;
|
final recMess = message[0].payload as MqttPublishMessage;
|
||||||
final payload =
|
final payload = Utf8Decoder().convert(recMess.payload.message!);
|
||||||
MqttUtilities.bytesToStringAsString(recMess.payload.message!);
|
// final payload =
|
||||||
|
// MqttUtilities.bytesToStringAsString(recMess.payload.message!);
|
||||||
_config.messgae(message[0].topic!, payload);
|
_config.messgae(message[0].topic!, payload);
|
||||||
});
|
});
|
||||||
_config.topic?.forEach((topic) {
|
_config.topic?.forEach((topic) {
|
||||||
@@ -54,7 +57,7 @@ class Mqtt {
|
|||||||
|
|
||||||
void publish(String topic, String msg, {int qos = 0}) {
|
void publish(String topic, String msg, {int qos = 0}) {
|
||||||
var payload = MqttPayloadBuilder();
|
var payload = MqttPayloadBuilder();
|
||||||
payload.addString(msg);
|
payload.addUTF8String(msg);
|
||||||
_client?.publishMessage(
|
_client?.publishMessage(
|
||||||
topic, MqttUtilities.getQosLevel(qos), payload.payload!);
|
topic, MqttUtilities.getQosLevel(qos), payload.payload!);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user