根据后端API重构,简化了前端的代理可用性监控机制。
app/src/api/upstream.ts
)getAvailability()
HTTP GET方法获取所有可用性状态availabilityWebSocket()
WebSocket方法实时更新状态UpstreamAvailabilityResponse
app/src/pinia/moudule/proxyAvailability.ts
)registerComponent
, unregisterComponent
)initialize()
- 从HTTP GET接口初始化状态startMonitoring()
- 启动完整监控(HTTP初始化 + WebSocket连接)stopMonitoring()
- 停止监控并清理连接hasAvailabilityData()
- 检查目标是否有可用性数据getAllTargets()
- 获取所有可用目标列表getAvailabilityResult()
- 简单地从缓存获取结果组件现在只需要:
const proxyStore = useProxyAvailabilityStore()
// 获取可用性结果(从缓存)
const result = proxyStore.getAvailabilityResult(target)
不再需要注册/注销组件或发送目标到后端。
app/src/layouts/BaseLayout.vue
)在用户登录后的主布局中初始化监控,确保用户已认证:
const proxyAvailabilityStore = useProxyAvailabilityStore()
onMounted(() => {
// Start monitoring for upstream availability
proxyAvailabilityStore.startMonitoring()
})
onUnmounted(() => {
// Stop monitoring when layout is unmounted
proxyAvailabilityStore.stopMonitoring()
})
BaseLayout.vue
挂载时自动调用 startMonitoring()