Cleanup intervals on destroyed views extension
This commit is contained in:
@@ -70,4 +70,15 @@ export class ViewsExtension implements Extension {
|
|||||||
this.intervalsBySocket.delete(socketId);
|
this.intervalsBySocket.delete(socketId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* onDestroy hook
|
||||||
|
* @param data The destroy payload
|
||||||
|
*/
|
||||||
|
async onDestroy() {
|
||||||
|
this.intervalsBySocket.forEach((interval, socketId) => {
|
||||||
|
clearInterval(interval);
|
||||||
|
this.intervalsBySocket.delete(socketId);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -541,8 +541,8 @@ export class Environment {
|
|||||||
this.toOptionalNumber(process.env.RATE_LIMITER_REQUESTS) ?? 1000;
|
this.toOptionalNumber(process.env.RATE_LIMITER_REQUESTS) ?? 1000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set max allowed realtime connections in a minute before throttling. Defaults
|
* Set max allowed realtime connections before throttling. Defaults to 50
|
||||||
* to 50 requests/ip/min.
|
* requests/ip/duration window.
|
||||||
*/
|
*/
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ export default function init(
|
|||||||
extensions: [
|
extensions: [
|
||||||
new Throttle({
|
new Throttle({
|
||||||
throttle: env.RATE_LIMITER_COLLABORATION_REQUESTS,
|
throttle: env.RATE_LIMITER_COLLABORATION_REQUESTS,
|
||||||
|
consideredSeconds: env.RATE_LIMITER_DURATION_WINDOW,
|
||||||
// Ban time is defined in minutes
|
// Ban time is defined in minutes
|
||||||
banTime: 5,
|
banTime: 5,
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user