diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-02 21:27:14 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-02 21:27:14 +0200 |
commit | 3618cc04ffc33e434b18ef6cee2a5ef79273bf7f (patch) | |
tree | 6146ba17c64246a9212c6de8e078bd8ea3d2e7ec /streaming | |
parent | 2d07cb57714b7aae96593c8ff293c1c3010a13f9 (diff) |
Add heartbeat to websockets streaming API connections
Diffstat (limited to 'streaming')
-rw-r--r-- | streaming/index.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/streaming/index.js b/streaming/index.js index 0f838e411a1..7edf6203fb0 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -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) |