diff --git a/src/index.ts b/src/index.ts index e13e351..d68990a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -941,7 +941,7 @@ const main = async () => { let l2Formatted: any; if (useRedis) { if ( - marketType === 'perp' && + !isSpot && normedParam['includeVamm'].toLowerCase() === 'true' && normedParam['includeOracle'].toLowerCase() === 'true' && !normedParam['grouping'] @@ -966,7 +966,7 @@ const main = async () => { l2Formatted = parsedRedisL2; } } else if ( - marketType === 'spot' && + isSpot && normedParam['includePhoenix'].toLowerCase() === 'true' && normedParam['includeSerum'].toLowerCase() === 'true' && !normedParam['grouping'] diff --git a/src/publishers/dlobPublisher.ts b/src/publishers/dlobPublisher.ts index 5209823..52aacd9 100644 --- a/src/publishers/dlobPublisher.ts +++ b/src/publishers/dlobPublisher.ts @@ -60,7 +60,7 @@ const useOrderSubscriber = const useGrpc = process.env.USE_GRPC?.toLowerCase() === 'true'; const useWebsocket = process.env.USE_WEBSOCKET?.toLowerCase() === 'true'; -const ORDERBOOK_UPDATE_INTERVAL = useGrpc ? 500 : 1000; +const ORDERBOOK_UPDATE_INTERVAL = 1000; const WS_FALLBACK_FETCH_INTERVAL = 10_000; logger.info(`RPC endpoint: ${endpoint}`); diff --git a/src/wsConnectionManager.ts b/src/wsConnectionManager.ts index 26eb4b3..db6d8a2 100644 --- a/src/wsConnectionManager.ts +++ b/src/wsConnectionManager.ts @@ -103,7 +103,7 @@ async function main() { const subscribers = channelSubscribers.get(subscribedChannel); if (subscribers) { subscribers.forEach((ws) => { - if (ws.readyState === WebSocket.OPEN && ws.bufferedAmount < 20) + if (ws.readyState === WebSocket.OPEN && ws.bufferedAmount < 100) ws.send( JSON.stringify({ channel: subscribedChannel, data: message }) ); @@ -257,6 +257,15 @@ async function main() { ws.on('error', (error) => { console.error('Socket error:', error); }); + + // Set interval to send heartbeat every 5 seconds + setInterval(() => { + ws.send( + JSON.stringify({ + channel: 'heartbeat', + }) + ); + }, 5000); }); server.listen(WS_PORT, () => { @@ -279,7 +288,7 @@ async function main() { set = new Set([...set, ...wsSet]); } for (const ws of set) { - if (ws.bufferedAmount > 500) { + if (ws.bufferedAmount > 100) { ws.close(); } }