diff --git a/src/index.ts b/src/index.ts index eb783a1..051eb42 100644 --- a/src/index.ts +++ b/src/index.ts @@ -82,6 +82,7 @@ addHandler("socketListenEvent", handleSocketListenEvent, { addHandler("socketListeners", handleSocketListenersEvent); addHandler("socketWrite", handleWriteSocketEvent); addHandler("socketClose", handleCloseSocketEvent); +addHandler("socketSetKeepAlive", handleSocketSetKeepAliveEvent); addHandler("createProtomuxChannel", handleCreateProtomuxChannel, { receiveUpdates: true, }); @@ -240,6 +241,25 @@ function handleCloseSocketEvent(aq: ActiveQuery) { aq.respond(); } +function handleSocketSetKeepAliveEvent(aq: ActiveQuery) { + const socket = validateConnection(aq); + + if (!socket) { + return; + } + + const { alive = null } = aq.callerInput; + + if (!alive) { + aq.reject("alive required"); + return; + } + + socket.setKeepAlive(aq.callerInput.alive); + + aq.respond(); +} + async function handleWriteSocketEvent(aq: ActiveQuery) { const socket = validateConnection(aq);