From a06bfda45c158d87aa95700f27d29c9cfc3b2b26 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Mon, 29 Jun 2026 23:50:48 +0800 Subject: [PATCH] =?UTF-8?q?diag(client):=20=5FonStats=20=E5=8A=A0=20urltes?= =?UTF-8?q?t=20=E8=AF=8A=E6=96=AD=E6=97=A5=E5=BF=97,=E5=AE=9A=E4=BD=8D?= =?UTF-8?q?=E5=BB=B6=E8=BF=9F=E6=98=BE=E7=A4=BA=20=E2=80=94=20=E6=A0=B9?= =?UTF-8?q?=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- client/lib/state/connection_provider.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/lib/state/connection_provider.dart b/client/lib/state/connection_provider.dart index da31aa8..9b758e8 100644 --- a/client/lib/state/connection_provider.dart +++ b/client/lib/state/connection_provider.dart @@ -87,6 +87,7 @@ class ConnectionController extends StateNotifier { Timer? _elapsed; Timer? _watchdog; bool _probing = false; + int _statsTick = 0; // 仅诊断:_onStats 限频打日志 // 本次 off 的提示语(节点异常/自动切换);kernel off 与显式断开都读它,避免被互相覆盖。 // 仅 _connect 开始时清空。用户主动断开则保持 null(无提示)。 String? _offNotice; @@ -232,8 +233,16 @@ class ConnectionController extends StateNotifier { final node = _connectedNode; if (node == null || node.uuid.isEmpty) return; final ds = e.urltestResults.where((r) => r.delayMs > 0).map((r) => r.delayMs); - if (ds.isEmpty) return; + if (ds.isEmpty) { + // 诊断:urltest 为空(每 ~10 帧打一次,免刷屏)。 + if (_statsTick++ % 10 == 0) { + logLine('Latency', + 'urltest empty: rawResults=${e.urltestResults.length} node=${node.code} nodePing=${node.ping}'); + } + return; + } final best = ds.reduce((a, b) => a < b ? a : b); + if (_statsTick++ % 10 == 0) logLine('Latency', 'urltest best=${best}ms → setLivePing ${node.code}'); _ref.read(nodesProvider.notifier).setLivePing(node.uuid, best); }