feat: 减少日志,增强状态,减少监听
This commit is contained in:
@@ -108,6 +108,8 @@ class KRSingBoxImp {
|
||||
/// Stream 订阅管理器
|
||||
final List<StreamSubscription<dynamic>> _kr_subscriptions = [];
|
||||
|
||||
StreamSubscription<SingboxStatus>? _kr_statusSubscription;
|
||||
|
||||
/// 初始化标志,防止重复初始化
|
||||
bool _kr_isInitialized = false;
|
||||
|
||||
@@ -736,35 +738,25 @@ class KRSingBoxImp {
|
||||
}
|
||||
KRLogUtil.kr_i('🔵 _kr_subscribeToStatus 被调用', tag: 'SingBox');
|
||||
|
||||
// 取消之前的状态订阅
|
||||
for (var sub in _kr_subscriptions) {
|
||||
if (sub.hashCode.toString().contains('Status')) {
|
||||
sub.cancel();
|
||||
if (kDebugMode) {
|
||||
print('🔵 已取消旧的状态订阅');
|
||||
_kr_statusSubscription?.cancel();
|
||||
_kr_statusSubscription = kr_singBox.watchStatus().listen(
|
||||
(status) {
|
||||
if (status == kr_status.value) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
_kr_subscriptions
|
||||
.removeWhere((sub) => sub.hashCode.toString().contains('Status'));
|
||||
|
||||
_kr_subscriptions.add(
|
||||
kr_singBox.watchStatus().listen(
|
||||
(status) {
|
||||
if (kDebugMode) {
|
||||
print('🔵 收到 Native 状态更新: ${status.runtimeType}');
|
||||
}
|
||||
KRLogUtil.kr_i('📡 收到状态更新: $status', tag: 'SingBox');
|
||||
kr_status.value = status;
|
||||
},
|
||||
onError: (error) {
|
||||
if (kDebugMode) {
|
||||
print('🔵 状态流错误: $error');
|
||||
}
|
||||
KRLogUtil.kr_e('📡 状态流错误: $error', tag: 'SingBox');
|
||||
},
|
||||
cancelOnError: false,
|
||||
),
|
||||
if (kDebugMode) {
|
||||
print('🔵 收到 Native 状态更新: ${status.runtimeType}');
|
||||
}
|
||||
KRLogUtil.kr_i('📡 收到状态更新: $status', tag: 'SingBox');
|
||||
kr_status.value = status;
|
||||
},
|
||||
onError: (error) {
|
||||
if (kDebugMode) {
|
||||
print('🔵 状态流错误: $error');
|
||||
}
|
||||
KRLogUtil.kr_e('📡 状态流错误: $error', tag: 'SingBox');
|
||||
},
|
||||
cancelOnError: false,
|
||||
);
|
||||
|
||||
if (kDebugMode) {
|
||||
@@ -1201,32 +1193,32 @@ class KRSingBoxImp {
|
||||
KRLogUtil.kr_i('📊 出站节点数量: ${outbounds.length}', tag: 'SingBox');
|
||||
|
||||
// 打印每个节点的详细配置
|
||||
for (int i = 0; i < outbounds.length; i++) {
|
||||
final outbound = outbounds[i];
|
||||
KRLogUtil.kr_i('📋 节点[$i] 配置:', tag: 'SingBox');
|
||||
KRLogUtil.kr_i(' - type: ${outbound['type']}', tag: 'SingBox');
|
||||
KRLogUtil.kr_i(' - tag: ${outbound['tag']}', tag: 'SingBox');
|
||||
KRLogUtil.kr_i(' - server: ${outbound['server']}', tag: 'SingBox');
|
||||
KRLogUtil.kr_i(' - server_port: ${outbound['server_port']}',
|
||||
tag: 'SingBox');
|
||||
if (outbound['method'] != null) {
|
||||
KRLogUtil.kr_i(' - method: ${outbound['method']}', tag: 'SingBox');
|
||||
}
|
||||
if (outbound['interval'] != null) {
|
||||
KRLogUtil.kr_i(' - interval: ${outbound['interval']}', tag: 'SingBox');
|
||||
}
|
||||
if (outbound['password'] != null) {
|
||||
KRLogUtil.kr_i(
|
||||
' - password: ${outbound['password']?.toString().substring(0, 8)}...',
|
||||
tag: 'SingBox');
|
||||
}
|
||||
if (outbound['uuid'] != null) {
|
||||
KRLogUtil.kr_i(
|
||||
' - uuid: ${outbound['uuid']?.toString().substring(0, 8)}...',
|
||||
tag: 'SingBox');
|
||||
}
|
||||
KRLogUtil.kr_i(' - 完整配置: ${jsonEncode(outbound)}', tag: 'SingBox');
|
||||
}
|
||||
// for (int i = 0; i < outbounds.length; i++) {
|
||||
// final outbound = outbounds[i];
|
||||
// KRLogUtil.kr_i('📋 节点[$i] 配置:', tag: 'SingBox');
|
||||
// KRLogUtil.kr_i(' - type: ${outbound['type']}', tag: 'SingBox');
|
||||
// KRLogUtil.kr_i(' - tag: ${outbound['tag']}', tag: 'SingBox');
|
||||
// KRLogUtil.kr_i(' - server: ${outbound['server']}', tag: 'SingBox');
|
||||
// KRLogUtil.kr_i(' - server_port: ${outbound['server_port']}',
|
||||
// tag: 'SingBox');
|
||||
// if (outbound['method'] != null) {
|
||||
// KRLogUtil.kr_i(' - method: ${outbound['method']}', tag: 'SingBox');
|
||||
// }
|
||||
// if (outbound['interval'] != null) {
|
||||
// KRLogUtil.kr_i(' - interval: ${outbound['interval']}', tag: 'SingBox');
|
||||
// }
|
||||
// if (outbound['password'] != null) {
|
||||
// KRLogUtil.kr_i(
|
||||
// ' - password: ${outbound['password']?.toString().substring(0, 8)}...',
|
||||
// tag: 'SingBox');
|
||||
// }
|
||||
// if (outbound['uuid'] != null) {
|
||||
// KRLogUtil.kr_i(
|
||||
// ' - uuid: ${outbound['uuid']?.toString().substring(0, 8)}...',
|
||||
// tag: 'SingBox');
|
||||
// }
|
||||
// KRLogUtil.kr_i(' - 完整配置: ${jsonEncode(outbound)}', tag: 'SingBox');
|
||||
// }
|
||||
|
||||
// ⚠️ 临时过滤 Hysteria2 节点以避免 libcore 崩溃
|
||||
kr_outbounds = outbounds.where((outbound) {
|
||||
@@ -1525,9 +1517,9 @@ class KRSingBoxImp {
|
||||
if (await configFile.exists()) {
|
||||
final configContent = await configFile.readAsString();
|
||||
KRLogUtil.kr_i('📄 配置文件内容长度: ${configContent.length}', tag: 'SingBox');
|
||||
KRLogUtil.kr_i(
|
||||
'📄 配置文件前500字符: ${configContent.substring(0, configContent.length > 500 ? 500 : configContent.length)}',
|
||||
tag: 'SingBox');
|
||||
// KRLogUtil.kr_i(
|
||||
// '📄 配置文件前500字符: ${configContent.substring(0, configContent.length > 500 ? 500 : configContent.length)}',
|
||||
// tag: 'SingBox');
|
||||
} else {
|
||||
KRLogUtil.kr_w('⚠️ 配置文件不存在: $_cutPath', tag: 'SingBox');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user