Files
ghatreh_user/src/utils/priceSocketState.ts
T
2026-06-29 15:27:35 +03:30

34 lines
766 B
TypeScript

import { ref } from 'vue'
export const priceSocketConnected = ref(false)
export const priceWssEnabled = ref(false)
export type PriceStreamLifecycle = 'idle' | 'connecting' | 'open' | 'closed'
export const priceStreamLifecycle = ref<PriceStreamLifecycle>('idle')
export const priceStreamConnectingSince = ref(0)
const CONNECTING_POLL_AFTER_MS = 8000
export function shouldUsePricePolling(): boolean {
if (!priceWssEnabled.value) {
return true
}
if (priceStreamLifecycle.value === 'open') {
return false
}
if (priceStreamLifecycle.value === 'connecting') {
const since = priceStreamConnectingSince.value
if (since > 0 && Date.now() - since >= CONNECTING_POLL_AFTER_MS) {
return true
}
return false
}
return true
}