@@ -941,7 +941,7 @@ const main = async () => {
|
|||||||
let l2Formatted: any;
|
let l2Formatted: any;
|
||||||
if (useRedis) {
|
if (useRedis) {
|
||||||
if (
|
if (
|
||||||
marketType === 'perp' &&
|
!isSpot &&
|
||||||
normedParam['includeVamm'].toLowerCase() === 'true' &&
|
normedParam['includeVamm'].toLowerCase() === 'true' &&
|
||||||
normedParam['includeOracle'].toLowerCase() === 'true' &&
|
normedParam['includeOracle'].toLowerCase() === 'true' &&
|
||||||
!normedParam['grouping']
|
!normedParam['grouping']
|
||||||
@@ -966,7 +966,7 @@ const main = async () => {
|
|||||||
l2Formatted = parsedRedisL2;
|
l2Formatted = parsedRedisL2;
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
marketType === 'spot' &&
|
isSpot &&
|
||||||
normedParam['includePhoenix'].toLowerCase() === 'true' &&
|
normedParam['includePhoenix'].toLowerCase() === 'true' &&
|
||||||
normedParam['includeSerum'].toLowerCase() === 'true' &&
|
normedParam['includeSerum'].toLowerCase() === 'true' &&
|
||||||
!normedParam['grouping']
|
!normedParam['grouping']
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ const useOrderSubscriber =
|
|||||||
const useGrpc = process.env.USE_GRPC?.toLowerCase() === 'true';
|
const useGrpc = process.env.USE_GRPC?.toLowerCase() === 'true';
|
||||||
const useWebsocket = process.env.USE_WEBSOCKET?.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;
|
const WS_FALLBACK_FETCH_INTERVAL = 10_000;
|
||||||
|
|
||||||
logger.info(`RPC endpoint: ${endpoint}`);
|
logger.info(`RPC endpoint: ${endpoint}`);
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ async function main() {
|
|||||||
const subscribers = channelSubscribers.get(subscribedChannel);
|
const subscribers = channelSubscribers.get(subscribedChannel);
|
||||||
if (subscribers) {
|
if (subscribers) {
|
||||||
subscribers.forEach((ws) => {
|
subscribers.forEach((ws) => {
|
||||||
if (ws.readyState === WebSocket.OPEN && ws.bufferedAmount < 20)
|
if (ws.readyState === WebSocket.OPEN && ws.bufferedAmount < 100)
|
||||||
ws.send(
|
ws.send(
|
||||||
JSON.stringify({ channel: subscribedChannel, data: message })
|
JSON.stringify({ channel: subscribedChannel, data: message })
|
||||||
);
|
);
|
||||||
@@ -257,6 +257,15 @@ async function main() {
|
|||||||
ws.on('error', (error) => {
|
ws.on('error', (error) => {
|
||||||
console.error('Socket 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, () => {
|
server.listen(WS_PORT, () => {
|
||||||
@@ -279,7 +288,7 @@ async function main() {
|
|||||||
set = new Set([...set, ...wsSet]);
|
set = new Set([...set, ...wsSet]);
|
||||||
}
|
}
|
||||||
for (const ws of set) {
|
for (const ws of set) {
|
||||||
if (ws.bufferedAmount > 500) {
|
if (ws.bufferedAmount > 100) {
|
||||||
ws.close();
|
ws.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user