stability fixes

This commit is contained in:
KingKDot
2026-05-04 09:58:59 -05:00
parent 8a7217cda2
commit c71af228b4
7 changed files with 174 additions and 76 deletions
@@ -24,16 +24,20 @@ export function startMaintenanceLoops(params: StartMaintenanceParams): void {
});
}, 5000);
const livenessTimeoutMs = Math.max(
params.heartbeatIntervalMs * 4 + params.disconnectTimeoutMs,
60_000,
);
setInterval(() => {
const now = Date.now();
for (const [id, info] of params.getClients().entries()) {
if (info.role !== "client") continue;
if (
info.lastPingNonce !== undefined &&
info.lastPingSent &&
now - info.lastPingSent > params.heartbeatIntervalMs + params.disconnectTimeoutMs
) {
logger.warn(`[ping] no pong from ${id} within timeout; closing socket`);
const lastActivity = info.lastSeen || 0;
if (lastActivity && now - lastActivity > livenessTimeoutMs) {
logger.warn(
`[ping] no activity from ${id} for ${now - lastActivity}ms; closing socket`,
);
try {
info.ws.close(4001, "ping timeout");
} catch (err) {