From e4701d67034655087ada9aa9af7dd2eb2ac83e17 Mon Sep 17 00:00:00 2001
From: 2dust <31833384+2dust@users.noreply.github.com>
Date: Wed, 22 Oct 2025 19:54:24 +0800
Subject: [PATCH] Add one-click test of real connection delay
---
v2rayN/ServiceLib/Enums/ESpeedActionType.cs | 3 +-
v2rayN/ServiceLib/Resx/ResUI.Designer.cs | 11 ++++++-
v2rayN/ServiceLib/Resx/ResUI.fa-Ir.resx | 3 ++
v2rayN/ServiceLib/Resx/ResUI.hu.resx | 3 ++
v2rayN/ServiceLib/Resx/ResUI.resx | 3 ++
v2rayN/ServiceLib/Resx/ResUI.ru.resx | 3 ++
v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx | 3 ++
v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx | 5 ++-
.../ViewModels/ProfilesViewModel.cs | 11 +++++++
.../v2rayN.Desktop/Views/ProfilesView.axaml | 24 ++++++++++----
.../Views/ProfilesView.axaml.cs | 1 +
v2rayN/v2rayN/Views/ProfilesView.xaml | 31 +++++++++++++------
v2rayN/v2rayN/Views/ProfilesView.xaml.cs | 1 +
13 files changed, 83 insertions(+), 19 deletions(-)
diff --git a/v2rayN/ServiceLib/Enums/ESpeedActionType.cs b/v2rayN/ServiceLib/Enums/ESpeedActionType.cs
index 0478bcc0..a03aa9df 100644
--- a/v2rayN/ServiceLib/Enums/ESpeedActionType.cs
+++ b/v2rayN/ServiceLib/Enums/ESpeedActionType.cs
@@ -5,5 +5,6 @@ public enum ESpeedActionType
Tcping,
Realping,
Speedtest,
- Mixedtest
+ Mixedtest,
+ FastRealping
}
diff --git a/v2rayN/ServiceLib/Resx/ResUI.Designer.cs b/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
index 3b12a5ee..90b25530 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
+++ b/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
@@ -19,7 +19,7 @@ namespace ServiceLib.Resx {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class ResUI {
@@ -1023,6 +1023,15 @@ namespace ServiceLib.Resx {
}
}
+ ///
+ /// 查找类似 Test real delay 的本地化字符串。
+ ///
+ public static string menuFastRealPing {
+ get {
+ return ResourceManager.GetString("menuFastRealPing", resourceCulture);
+ }
+ }
+
///
/// 查找类似 Full Config Template Setting 的本地化字符串。
///
diff --git a/v2rayN/ServiceLib/Resx/ResUI.fa-Ir.resx b/v2rayN/ServiceLib/Resx/ResUI.fa-Ir.resx
index 02235c2d..08d4d111 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.fa-Ir.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.fa-Ir.resx
@@ -1596,4 +1596,7 @@
Resolve DNS server domains, requires IP
+
+ Test real delay
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.hu.resx b/v2rayN/ServiceLib/Resx/ResUI.hu.resx
index 60b56d21..abb43c0a 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.hu.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.hu.resx
@@ -1596,4 +1596,7 @@
Resolve DNS server domains, requires IP
+
+ Test real delay
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.resx b/v2rayN/ServiceLib/Resx/ResUI.resx
index d92df24d..9a1639ce 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.resx
@@ -1596,4 +1596,7 @@
Resolve DNS server domains, requires IP
+
+ Test real delay
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.ru.resx b/v2rayN/ServiceLib/Resx/ResUI.ru.resx
index 7b2e12cb..67067b9a 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.ru.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.ru.resx
@@ -1596,4 +1596,7 @@
Resolve DNS server domains, requires IP
+
+ Test real delay
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx b/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
index b4d912d2..095d8594 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
@@ -1593,4 +1593,7 @@
解析 DNS 服务器域名,需指定为 IP
+
+ 一键测试真连接延迟
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx b/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
index a888a66b..d03b0d20 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
@@ -1593,4 +1593,7 @@
解析 DNS 伺服器網域名稱,需指定為 IP
-
+
+ 一鍵測試真連線延遲
+
+
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs
index 1b7b82c7..1780e513 100644
--- a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs
+++ b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs
@@ -66,6 +66,7 @@ public class ProfilesViewModel : MyReactiveObject
public ReactiveCommand SpeedServerCmd { get; }
public ReactiveCommand SortServerResultCmd { get; }
public ReactiveCommand RemoveInvalidServerResultCmd { get; }
+ public ReactiveCommand FastRealPingCmd { get; }
//servers export
public ReactiveCommand Export2ClientConfigCmd { get; }
@@ -179,6 +180,10 @@ public class ProfilesViewModel : MyReactiveObject
}, canEditRemove);
//servers ping
+ FastRealPingCmd = ReactiveCommand.CreateFromTask(async () =>
+ {
+ await ServerSpeedtest(ESpeedActionType.FastRealping);
+ });
MixedTestServerCmd = ReactiveCommand.CreateFromTask(async () =>
{
await ServerSpeedtest(ESpeedActionType.Mixedtest);
@@ -729,6 +734,12 @@ public class ProfilesViewModel : MyReactiveObject
{
SelectedProfiles = ProfileItems;
}
+ else if (actionType == ESpeedActionType.FastRealping)
+ {
+ SelectedProfiles = ProfileItems;
+ actionType = ESpeedActionType.Realping;
+ }
+
var lstSelected = await GetProfileItems(false);
if (lstSelected == null)
{
diff --git a/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml b/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml
index 7a6cf085..14a2d174 100644
--- a/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml
+++ b/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml
@@ -49,6 +49,13 @@
+
+
-
+ Classes="IconButton Success"
+ ToolTip.Tip="{x:Static resx:ResUI.menuFastRealPing}">
+
+
+
+
+
-
+
+