diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-08-18 15:23:45 +0100 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-08-18 15:23:45 +0100 |
| commit | caa0fecdc98e7d1dd7e5c7efb15b86fc2659a80d (patch) | |
| tree | 4747771a7c7a2c646596f4437ac883929dd53218 /packages/backend/src/server/api | |
| parent | merge: fix lints (!594) (diff) | |
| download | sharkey-caa0fecdc98e7d1dd7e5c7efb15b86fc2659a80d.tar.gz sharkey-caa0fecdc98e7d1dd7e5c7efb15b86fc2659a80d.tar.bz2 sharkey-caa0fecdc98e7d1dd7e5c7efb15b86fc2659a80d.zip | |
relax websocket rate limits
* the frontend opens 2 websockets at startup (I'm not completely clear
why), and that `minInterval:1sec` was breaking the second connection
* as the comment says, "catching up" generates many noteSubscribe
messages
Diffstat (limited to 'packages/backend/src/server/api')
| -rw-r--r-- | packages/backend/src/server/api/StreamingApiServerService.ts | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/StreamingApiServerService.ts b/packages/backend/src/server/api/StreamingApiServerService.ts index 2070ab6106..a2dafb2ebd 100644 --- a/packages/backend/src/server/api/StreamingApiServerService.ts +++ b/packages/backend/src/server/api/StreamingApiServerService.ts @@ -100,7 +100,6 @@ export class StreamingApiServerService { key: 'wsconnect', duration: ms('5min'), max: 32, - minInterval: ms('1sec'), })) { socket.write('HTTP/1.1 429 Rate Limit Exceeded\r\n\r\n'); socket.destroy(); @@ -145,10 +144,14 @@ export class StreamingApiServerService { } const rateLimiter = () => { + // rather high limit, because when catching up at the top of a + // timeline, the frontend may render many many notes, each of + // which causes a message via `useNoteCapture` to ask for + // realtime updates of that note return this.rateLimitThis(user, requestIp, { key: 'wsmessage', - duration: ms('5sec'), - max: 256, + duration: ms('2sec'), + max: 4090, }); }; |