fix: stop idle mihomo websocket subscriptions

This commit is contained in:
Tunglies
2026-07-06 08:33:23 +08:00
parent 20ac214a83
commit 1d7462a021
7 changed files with 124 additions and 44 deletions
+16 -12
View File
@@ -147,18 +147,19 @@ export const EnhancedTrafficStats = () => {
// 是否显示流量图表
const trafficGraph = verge?.traffic_graph ?? true
const displayMemory = verge?.enable_memory_usage ?? true
const {
response: { data: traffic },
} = useTrafficData({ enabled: trafficGraph && pageVisible })
} = useTrafficData({ enabled: pageVisible })
const {
response: { data: memory },
} = useMemoryData()
} = useMemoryData({ enabled: displayMemory && pageVisible })
const {
response: { data: connectionSummary },
} = useConnectionSummaryData()
} = useConnectionSummaryData({ enabled: pageVisible })
// Canvas组件现在直接从全局Hook获取数据,无需手动添加数据点
@@ -211,8 +212,8 @@ export const EnhancedTrafficStats = () => {
}, [trafficGraph, pageVisible, theme.palette.divider])
// 使用useMemo计算统计卡片配置
const statCards = useMemo(
() => [
const statCards = useMemo(() => {
const cards: StatCardProps[] = [
{
icon: <ArrowUpwardRounded fontSize="small" />,
title: t('home.components.traffic.metrics.uploadSpeed'),
@@ -248,17 +249,20 @@ export const EnhancedTrafficStats = () => {
unit: parsedData.downloadTotalUnit,
color: 'primary' as const,
},
{
]
if (displayMemory) {
cards.push({
icon: <MemoryRounded fontSize="small" />,
title: t('home.components.traffic.metrics.memoryUsage'),
value: parsedData.inuse,
unit: parsedData.inuseUnit,
color: 'error' as const,
onClick: undefined,
},
],
[t, parsedData],
)
})
}
return cards
}, [t, parsedData, displayMemory])
return (
<TrafficErrorBoundary
@@ -276,7 +280,7 @@ export const EnhancedTrafficStats = () => {
{/* 统计卡片区域 */}
{statCards.map((card) => (
<Grid key={card.title} size={4}>
<CompactStatCard {...(card as StatCardProps)} />
<CompactStatCard {...card} />
</Grid>
))}
</Grid>
+3 -5
View File
@@ -24,16 +24,17 @@ export const LayoutTraffic = () => {
// whether hide traffic graph
const trafficGraph = verge?.traffic_graph ?? true
const displayMemory = verge?.enable_memory_usage ?? true
const trafficRef = useRef<TrafficRef>(null)
const pageVisible = useVisibility()
const {
response: { data: traffic },
} = useTrafficData({ enabled: trafficGraph && pageVisible })
} = useTrafficData({ enabled: pageVisible })
const {
response: { data: memory },
} = useMemoryData()
} = useMemoryData({ enabled: displayMemory && pageVisible })
// 监听数据变化,为图表添加数据点
useEffect(() => {
@@ -47,9 +48,6 @@ export const LayoutTraffic = () => {
}
}, [traffic])
// 显示内存使用情况的设置
const displayMemory = verge?.enable_memory_usage ?? true
// 使用parseTraffic统一处理转换,保持与首页一致的显示格式
const [up, upUnit] = parseTraffic(traffic?.up || 0)
const [down, downUnit] = parseTraffic(traffic?.down || 0)