From c1a5afe3d7426fd2a969f79dda596c4a8ce49ec1 Mon Sep 17 00:00:00 2001 From: Nour Alharithi Date: Mon, 11 Dec 2023 18:52:46 -0800 Subject: [PATCH 1/2] possible memory leak fixes --- package.json | 1 + src/utils/redisClient.ts | 1 + src/wsConnectionManager.ts | 7 ++++--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index bc4794b..df9c1ce 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "dlob-publish": "ts-node src/publishers/dlobPublisher.ts", "trades-publish": "ts-node src/publishers/tradesPublisher.ts", "ws-manager": "ts-node src/wsConnectionManager.ts", + "ws-manager:inspect": "yarn build && node --inspect ./lib/wsConnectionManager.js", "dev:inspect": "yarn build && node --inspect ./lib/index.js", "dev:debug": "yarn build && node --inspect-brk --inspect=2230 ./lib/index.js", "example": "ts-node example/client.ts", diff --git a/src/utils/redisClient.ts b/src/utils/redisClient.ts index 1bdf392..875fe89 100644 --- a/src/utils/redisClient.ts +++ b/src/utils/redisClient.ts @@ -34,6 +34,7 @@ export const getRedisClient = ( return false; }, maxRetriesPerRequest: null, // unlimited retries + enableOfflineQueue: false, }); redisClient.on('connect', () => { diff --git a/src/wsConnectionManager.ts b/src/wsConnectionManager.ts index a4e74fe..4f98c72 100644 --- a/src/wsConnectionManager.ts +++ b/src/wsConnectionManager.ts @@ -99,7 +99,10 @@ async function main() { const subscribers = channelSubscribers.get(subscribedChannel); if (subscribers) { subscribers.forEach((ws) => { - ws.send(JSON.stringify({ channel: subscribedChannel, data: message })); + if (ws.readyState === WebSocket.OPEN) + ws.send( + JSON.stringify({ channel: subscribedChannel, data: message }) + ); }); } }); @@ -110,7 +113,6 @@ async function main() { wss.on('connection', (ws: WebSocket) => { console.log('Client connected'); - console.log('Number of active connections:', wss.clients.size); wsConnectionsGauge.inc(); ws.on('message', async (msg) => { @@ -245,7 +247,6 @@ async function main() { subscribedChannels.delete(channel); } }); - console.log('Number of active connections:', wss.clients.size); wsConnectionsGauge.dec(); }); From 15579e1b2a76d0c66dda4fc9d8ec5daee756b41f Mon Sep 17 00:00:00 2001 From: Nour Alharithi Date: Mon, 11 Dec 2023 18:56:19 -0800 Subject: [PATCH 2/2] remove redis config --- src/utils/redisClient.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/utils/redisClient.ts b/src/utils/redisClient.ts index 875fe89..1bdf392 100644 --- a/src/utils/redisClient.ts +++ b/src/utils/redisClient.ts @@ -34,7 +34,6 @@ export const getRedisClient = ( return false; }, maxRetriesPerRequest: null, // unlimited retries - enableOfflineQueue: false, }); redisClient.on('connect', () => {