Skip to content

Commit

Permalink
Fix #244 Disable buffer for comments
Browse files Browse the repository at this point in the history
Comments for an episode are sent back to the front end using
chunked Transfer Enconding, but that that is not supported
on HTTP/2 which is used by the reverse proxy (nginx).

At the moment nginx buffers the chunks before sending them
to the browser, which breaks the way the chunks are processed.

With this commit, we use the header X-Accel-Buffering to
disable this buffering, which worked in local testing.

We should still add a more clear chunk delimiter so that
any other buffering or unknown edge case will not
break the comments function (increase robustness).

Co-authored-by: ericpp
  • Loading branch information
dellagustin committed Mar 26, 2023
1 parent e4ff8cf commit 3ad4f0b
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,10 @@ app.use('/api/comments/byepisodeid', async (req, res) => {
const cache = new InMemoryCache();
const fetcher = makeRateLimitedFetcher(fetch);

// Disable buffering in the nginx server so that the delivery of
// chunks are not delayed
res.setHeader('X-Accel-Buffering', 'no');

const sentCommenters = {};

const threadcap = await makeThreadcap(socialInteract[0].uri, { userAgent, cache, fetcher });
Expand Down

0 comments on commit 3ad4f0b

Please sign in to comment.