diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-08-18 17:57:51 +0100 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-08-18 17:57:51 +0100 |
| commit | 77144b058c48fc7b5f51ad992151c20447cf28d9 (patch) | |
| tree | 97892764b7e8bd9d7b7d4f34e9894b48ff60036a | |
| parent | merge: fix `offsetMode` in `MkPagination` - fixes #622 (!599) (diff) | |
| download | sharkey-77144b058c48fc7b5f51ad992151c20447cf28d9.tar.gz sharkey-77144b058c48fc7b5f51ad992151c20447cf28d9.tar.bz2 sharkey-77144b058c48fc7b5f51ad992151c20447cf28d9.zip | |
make the cap of `activeRateLimitRequests` match the rate limit
It's trivial to have more than 128 requests in flight: open a busy
timeline, scroll a bit down, wait for many notes to arrive, scroll to
the top. The frontend will send "subscribe to note" messages for each
new note that it accumulated, all at once. We don't want to shut down
the connection in those common cases!
| -rw-r--r-- | packages/backend/src/server/api/StreamingApiServerService.ts | 2 | ||||
| -rw-r--r-- | packages/backend/src/server/api/stream/Connection.ts | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/StreamingApiServerService.ts b/packages/backend/src/server/api/StreamingApiServerService.ts index a2dafb2ebd..9b8464f705 100644 --- a/packages/backend/src/server/api/StreamingApiServerService.ts +++ b/packages/backend/src/server/api/StreamingApiServerService.ts @@ -151,7 +151,7 @@ export class StreamingApiServerService { return this.rateLimitThis(user, requestIp, { key: 'wsmessage', duration: ms('2sec'), - max: 4090, + max: 4096, }); }; diff --git a/packages/backend/src/server/api/stream/Connection.ts b/packages/backend/src/server/api/stream/Connection.ts index b71a99b89e..7ea92eb797 100644 --- a/packages/backend/src/server/api/stream/Connection.ts +++ b/packages/backend/src/server/api/stream/Connection.ts @@ -120,7 +120,9 @@ export default class Connection { if (this.closingConnection) return; if (this.rateLimiter) { - if (this.activeRateLimitRequests <= 128) { + // this 4096 should match the `max` of the `rateLimiter`, see + // StreamingApiServerService + if (this.activeRateLimitRequests <= 4096) { this.activeRateLimitRequests++; const shouldRateLimit = await this.rateLimiter(); this.activeRateLimitRequests--; |