hi-client/debug_connection_status.dart
2025-10-13 18:08:02 +08:00

75 lines
2.6 KiB
Dart

// 连接状态调试工具
// 用于诊断连接后一直显示 connecting 的问题
import 'package:get/get.dart';
import 'package:kaer_with_panels/app/services/singbox_imp/kr_sing_box_imp.dart';
import 'package:kaer_with_panels/app/modules/kr_home/controllers/kr_home_controller.dart';
import 'package:kaer_with_panels/app/localization/app_translations.dart';
class ConnectionStatusDebugger {
static void debugConnectionStatus() {
print('🔍 === 连接状态调试信息 ===');
// 1. 检查 SingBox 状态
final singboxStatus = KRSingBoxImp.instance.kr_status.value;
print('📊 SingBox 状态: $singboxStatus');
print('📊 SingBox 状态类型: ${singboxStatus.runtimeType}');
// 2. 检查首页控制器状态
try {
final homeController = Get.find<KRHomeController>();
print('🏠 首页控制器连接文本: ${homeController.kr_connectText.value}');
print('🏠 首页控制器是否连接: ${homeController.kr_isConnected.value}');
print('🏠 首页控制器当前速度: ${homeController.kr_currentSpeed.value}');
print('🏠 首页控制器节点延迟: ${homeController.kr_currentNodeLatency.value}');
} catch (e) {
print('❌ 无法获取首页控制器: $e');
}
// 3. 检查活动组
final activeGroups = KRSingBoxImp.instance.kr_activeGroups;
print('📋 活动组数量: ${activeGroups.length}');
for (int i = 0; i < activeGroups.length; i++) {
final group = activeGroups[i];
print(' └─ 组[$i]: tag=${group.tag}, type=${group.type}, selected=${group.selected}');
}
// 4. 检查状态监听器
print('🔄 状态监听器状态:');
KRSingBoxImp.instance.kr_status.listen((status) {
print(' └─ 状态变化: $status (${status.runtimeType})');
});
print('🔍 === 调试信息结束 ===');
}
static void forceStatusSync() {
print('🔄 强制同步连接状态...');
try {
final homeController = Get.find<KRHomeController>();
homeController.kr_forceSyncConnectionStatus();
print('✅ 状态同步完成');
} catch (e) {
print('❌ 状态同步失败: $e');
}
}
static void testConnectionFlow() {
print('🧪 测试连接流程...');
// 模拟连接流程
print('1. 开始连接...');
KRSingBoxImp.instance.kr_start().then((_) {
print('2. 连接启动完成');
// 等待状态更新
Future.delayed(const Duration(seconds: 3), () {
print('3. 检查连接状态...');
debugConnectionStatus();
});
}).catchError((e) {
print('❌ 连接失败: $e');
});
}
}