logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
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:

Mstreaming/index.js7+++++++
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)