From 8d3edc7cd13403c2a520a9c7096c6f416025ab51 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 13 Oct 2026 22:33:19 +1300 Subject: [PATCH] Add periodic stream heartbeat to stop disconnection/reconnection cycle --- server/eventStreamSource.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/eventStreamSource.js b/server/eventStreamSource.js index 568acaab6..537beb81a 100644 --- a/server/eventStreamSource.js +++ b/server/eventStreamSource.js @@ -12,6 +12,7 @@ const DEBUG = { // Delays const REPORT_DELAY = config.get('REPORT_DELAY') || 30 * 60 * 1000; //ms +const HEARTBEAT_DELAY = config.get('HEARTBEAT_DELAY') || 20 * 1000; //ms const Stream = new EventEmitter; @@ -47,6 +48,20 @@ const unsubscribe = function(id){ subscribers = subscribers.filter((sub)=>{ return sub.id != id; }); }; +// Create heartbeat +const heartbeatId = setInterval(()=>{ + if(DEBUG.showEvents){ console.log('STREAM HEARTBEAT @ ', new Date); }; + subscribers + .forEach((sub)=>{ + sub?.stream?.write(`:\n\n`); + }); +}, HEARTBEAT_DELAY); + +Stream.on('close', ()=>{ + console.log('STREAM CLOSE'); + clearInterval(heartbeatId); +}); + // Create global sendUpdate listener Stream.on('sendUpdate', (event, data)=>{ if(DEBUG.showEvents) console.log('Event:', event, '\nData:', data);