新增调试信息

This commit is contained in:
2025-10-27 22:15:25 +08:00
parent ae62457d8c
commit 04642cb2f0
5479 changed files with 683397 additions and 3450 deletions
@@ -97,6 +97,36 @@ class KRSingBoxImp {
/// Stream 订阅管理器
final List<StreamSubscription<dynamic>> _kr_subscriptions = [];
/// 当前混合代理端口是否就绪
bool get kr_isProxyReady => kr_status.value is SingboxStarted;
String? _lastProxyRule;
/// 构建 Dart HttpClient 可识别的代理规则字符串
///
/// 当 sing-box 尚未启动时返回 `DIRECT`,启动后返回
/// `PROXY 127.0.0.1:<port>; DIRECT`,以便在代理不可用时自动回落。
String kr_buildProxyRule({bool includeDirectFallback = true}) {
if (!kr_isProxyReady) {
const directRule = 'DIRECT';
if (_lastProxyRule != directRule) {
KRLogUtil.kr_i('⏳ sing-box 未就绪,使用 DIRECT 直连', tag: 'SingBox');
_lastProxyRule = directRule;
}
return directRule;
}
final proxyRule = StringBuffer('PROXY 127.0.0.1:$kr_port');
if (includeDirectFallback) {
proxyRule.write('; DIRECT');
}
final ruleString = proxyRule.toString();
if (_lastProxyRule != ruleString) {
KRLogUtil.kr_i('🛠️ 使用代理规则: $ruleString', tag: 'SingBox');
_lastProxyRule = ruleString;
}
return ruleString;
}
/// 初始化
Future<void> init() async {
try {
@@ -426,8 +456,10 @@ class KRSingBoxImp {
kr_outbounds = outbounds;
final map = {};
map["outbounds"] = kr_outbounds;
// 只保存 outboundsMobile.buildConfig() 会添加其他配置
final map = {
"outbounds": kr_outbounds
};
final file = _file(kr_configName);
final temp = _tempFile(kr_configName);