Skip to content

Commit 8fc0a40

Browse files
committed
feat: support custom timeout for latency testing
1 parent 57dd601 commit 8fc0a40

7 files changed

Lines changed: 25 additions & 3 deletions

File tree

frontend/src/api/kernel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ export const deleteConnection = (id: string) => request.delete<null>(Api.Connect
9595
export const useProxy = (group: string, proxy: string) => {
9696
return request.put<null>(Api.Proxies + '/' + group, { name: proxy })
9797
}
98-
export const getProxyDelay = (proxy: string, url: string) => {
98+
export const getProxyDelay = (proxy: string, url: string, timeout: number) => {
9999
return request.get<Record<string, number>>(Api.ProxyDelay.replace('{0}', proxy), {
100100
url,
101-
timeout: 5000,
101+
timeout,
102102
})
103103
}
104104

frontend/src/constant/app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ export const DefaultSubscribeScript = `const onSubscribe = async (proxies, subsc
160160

161161
export const DefaultTestURL = 'https://www.gstatic.com/generate_204'
162162

163+
export const DefaultTestTimeout = 5000
164+
163165
export const DefaultConcurrencyLimit = 20
164166

165167
export const DefaultCardColumns = 5

frontend/src/lang/locale/en.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,8 @@ export default {
354354
unAvailable: 'Show UnAvailable',
355355
cardMode: 'Card Mode',
356356
sortBy: 'Sort By Delay',
357-
delay: 'Delay test URL',
357+
delay: 'Latency test URL',
358+
timeout: 'Latency test timeout (ms)',
358359
concurrencyLimit: 'Latency test concurrency',
359360
cardColumns: 'Number of card columns',
360361
sensitivity: 'Controller Scroll Sensitivity',

frontend/src/lang/locale/zh.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ export default {
354354
cardMode: '卡片模式',
355355
sortBy: '按延迟排序',
356356
delay: '延迟测试URL',
357+
timeout: '延迟测试超时时间(ms)',
357358
concurrencyLimit: '延迟测试并发数量',
358359
cardColumns: '卡片展示列数',
359360
sensitivity: '控制器滚动灵敏度',

frontend/src/stores/appSettings.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
DefaultConcurrencyLimit,
1616
DefaultControllerSensitivity,
1717
DefaultFontFamily,
18+
DefaultTestTimeout,
1819
DefaultTestURL,
1920
UserFilePath,
2021
} from '@/constant/app'
@@ -82,6 +83,7 @@ export const useAppSettingsStore = defineStore('app-settings', () => {
8283
cardColumns: DefaultCardColumns,
8384
sortByDelay: false,
8485
testUrl: DefaultTestURL,
86+
testTimeout: DefaultTestTimeout,
8587
concurrencyLimit: DefaultConcurrencyLimit,
8688
controllerCloseMode: ControllerCloseMode.All,
8789
controllerSensitivity: DefaultControllerSensitivity,

frontend/src/types/app.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ export interface AppSettings {
7575
cardColumns: number
7676
sortByDelay: boolean
7777
testUrl: string
78+
testTimeout: number
7879
concurrencyLimit: number
7980
controllerCloseMode: ControllerCloseMode
8081
controllerSensitivity: number

frontend/src/views/HomeView/components/GroupsController.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
DefaultCardColumns,
99
DefaultConcurrencyLimit,
1010
DefaultControllerSensitivity,
11+
DefaultTestTimeout,
1112
DefaultTestURL,
1213
} from '@/constant/app'
1314
import { ControllerCloseMode } from '@/enums/app'
@@ -112,6 +113,7 @@ const handleGroupDelay = async (group: string) => {
112113
const { delay = 0 } = await getProxyDelay(
113114
encodeURIComponent(proxy),
114115
appSettings.app.kernel.testUrl || DefaultTestURL,
116+
appSettings.app.kernel.testTimeout || DefaultTestTimeout,
115117
)
116118
success += 1
117119
_proxy && _proxy.history.push({ delay })
@@ -153,6 +155,7 @@ const handleProxyDelay = async (proxy: string) => {
153155
const { delay = 0 } = await getProxyDelay(
154156
encodeURIComponent(proxy),
155157
appSettings.app.kernel.testUrl || DefaultTestURL,
158+
appSettings.app.kernel.testTimeout || DefaultTestTimeout,
156159
)
157160
const _proxy = kernelApiStore.proxies[proxy]
158161
_proxy && _proxy.history.push({ delay })
@@ -189,6 +192,7 @@ const delayColor = (delay = 0) => {
189192
190193
const handleResetMoreSettings = () => {
191194
appSettings.app.kernel.testUrl = DefaultTestURL
195+
appSettings.app.kernel.testTimeout = DefaultTestTimeout
192196
appSettings.app.kernel.concurrencyLimit = DefaultConcurrencyLimit
193197
appSettings.app.kernel.controllerCloseMode = ControllerCloseMode.All
194198
appSettings.app.kernel.controllerSensitivity = DefaultControllerSensitivity
@@ -351,6 +355,17 @@ onActivated(() => {
351355
/>
352356
</div>
353357

358+
<div class="form-item">
359+
{{ t('home.controller.timeout') }}
360+
<Input
361+
v-model="appSettings.app.kernel.testTimeout"
362+
:placeholder="String(DefaultTestTimeout)"
363+
type="number"
364+
editable
365+
clearable
366+
/>
367+
</div>
368+
354369
<div class="form-item">
355370
{{ t('home.controller.concurrencyLimit') }}
356371
<Input

0 commit comments

Comments
 (0)