Node.js WebSocket consumer dropping Genesys Cloud analytics events

Trying to pipe /v2/analytics/events/summary via WebSocket to a Kafka topic using a Node.js consumer. The connection holds, but the event stream cuts out after exactly 120 seconds with a 1001 Close code. Here’s the reconnect logic:

ws.on('close', (code, reason) => {
 console.log('Stream dropped:', code);
 setTimeout(connect, 1000);
});

The docs mention a heartbeat, but ping() isn’t keeping the socket alive. What am I missing?