diff options
author | Ben Lubar <ben.lubar@gmail.com> | 2020-01-24 13:51:33 -0600 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2020-01-24 20:51:33 +0100 |
commit | 0dfba0884e8885cf242010e0d9da6b328b3560a6 (patch) | |
tree | 9712770831d46872bc284171e4b6f8e8bbfa51b6 | |
parent | 14ca559705285432f06d9343dc2d00c0b009184b (diff) |
minor server-sent events fixes (#12945)
* Send output on the server-sent events stream immediately so the client sees that it was successfully opened even if it doesn't have any messages. Fix transparent SSE streaming for the public:local and hashtag:local stream types. * Tell caches to never store server-sent events.
-rw-r--r-- | app/javascript/mastodon/stream.js | 1 | ||||
-rw-r--r-- | streaming/index.js | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js index fe965bcb0..0cb2b228f 100644 --- a/app/javascript/mastodon/stream.js +++ b/app/javascript/mastodon/stream.js @@ -92,6 +92,7 @@ export default function getStream(streamingAPIBaseURL, accessToken, stream, { co return ws; } + stream = stream.replace(/:/g, '/'); params.push(`access_token=${accessToken}`); const es = new EventSource(`${streamingAPIBaseURL}/api/v1/streaming/${stream}?${params.join('&')}`); diff --git a/streaming/index.js b/streaming/index.js index 304e7e046..0a19c74a6 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -436,8 +436,11 @@ const startWorker = (workerId) => { const accountId = req.accountId || req.remoteAddress; res.setHeader('Content-Type', 'text/event-stream'); + res.setHeader('Cache-Control', 'no-store'); res.setHeader('Transfer-Encoding', 'chunked'); + res.write(':)\n'); + const heartbeat = setInterval(() => res.write(':thump\n'), 15000); req.on('close', () => { |