codexmobile-relay / scripts /relay-mac-client-reconnect.mjs
Codex
deploy: CodexMobile Relay
90f0300
Raw
History Blame Contribute Delete
743 Bytes
import { DEFAULT_RELAY_IDLE_HEARTBEAT_MS } from '../server/relay-protocol.js';
export const INITIAL_RECONNECT_DELAY_MS = 1000;
export const ACTIVE_RECONNECT_CAP_MS = 30000;
export const STABLE_RECONNECT_RESET_MS = 60000;
export function nextReconnectDelay(currentDelayMs, { active = false, idleHeartbeatMs = DEFAULT_RELAY_IDLE_HEARTBEAT_MS } = {}) {
const capMs = active ? ACTIVE_RECONNECT_CAP_MS : idleHeartbeatMs;
const delayMs = Math.min(Math.max(Number(currentDelayMs) || INITIAL_RECONNECT_DELAY_MS, INITIAL_RECONNECT_DELAY_MS), capMs);
return {
delayMs,
nextDelayMs: Math.min(delayMs * 2, capMs)
};
}
export function shouldResetReconnectDelay(onlineForMs) {
return Number(onlineForMs) >= STABLE_RECONNECT_RESET_MS;
}