Add heartbeat to websockets streaming API connections
This commit is contained in:
		
							parent
							
								
									2d07cb5771
								
							
						
					
					
						commit
						3618cc04ff
					
				
					 1 changed files with 7 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -215,8 +215,11 @@ const streamHttpEnd = req => (id, listener) => {
 | 
			
		|||
 | 
			
		||||
// Setup stream output to WebSockets
 | 
			
		||||
const streamToWs = (req, ws) => {
 | 
			
		||||
  const heartbeat = setInterval(() => ws.ping(), 15000)
 | 
			
		||||
 | 
			
		||||
  ws.on('close', () => {
 | 
			
		||||
    log.verbose(req.requestId, `Ending stream for ${req.accountId}`)
 | 
			
		||||
    clearInterval(heartbeat)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  return (event, payload) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -234,6 +237,10 @@ const streamWsEnd = ws => (id, listener) => {
 | 
			
		|||
  ws.on('close', () => {
 | 
			
		||||
    unsubscribe(id, listener)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  ws.on('error', e => {
 | 
			
		||||
    unsubscribe(id, listener)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
app.use(setRequestId)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue