commit: 3618cc04ffc33e434b18ef6cee2a5ef79273bf7f
parent: 2d07cb57714b7aae96593c8ff293c1c3010a13f9
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 2 Apr 2017 21:27:14 +0200
Add heartbeat to websockets streaming API connections
Diffstat:
1 file changed, 7 insertions(+), 0 deletions(-)
diff --git 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)