From ebf9a0b05eed303c856367505a9110ea6830aad6 Mon Sep 17 00:00:00 2001 From: Harshith Mullapudi Date: Sun, 24 Aug 2025 15:52:53 +0530 Subject: [PATCH] fix: send ping every 60 seconds, to keep the connection alive --- apps/webapp/app/services/mcp.server.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/webapp/app/services/mcp.server.ts b/apps/webapp/app/services/mcp.server.ts index 3e6dccf..e66e967 100644 --- a/apps/webapp/app/services/mcp.server.ts +++ b/apps/webapp/app/services/mcp.server.ts @@ -127,8 +127,20 @@ async function createTransport( }, }); + const keepAlive = setInterval(() => { + try { + transport.send({ jsonrpc: "2.0", method: "ping" }); + } catch (e) { + // If sending a ping fails, the connection is likely broken. + // Log the error and clear the interval to prevent further attempts. + logger.error("Failed to send keep-alive ping, cleaning up interval." + e); + clearInterval(keepAlive); + } + }, 60000); // Send ping every 60 seconds + // Setup cleanup on close transport.onclose = async () => { + clearInterval(keepAlive); await MCPSessionManager.deleteSession(sessionId); await TransportManager.cleanupSession(sessionId); };