速率限制 - TCP 服务器 (net.Server)
Rate-Limit - TCP Server (net.Server)
我正在使用 net.Server 作为我的 TCP 服务器。
如何执行消息速率限制?
我为 Express (express-rate-limit) and Websocket (websocket-rate-limit) 找到了类似的解决方案,但没有为 TCP 找到类似的解决方案。
rate-limiter-flexible 包可用于此目的。
它支持Redis、MongoDB等多种存储。下面是最简单的内存存储示例:
const opts = {
points: 10, // 10 points
duration: 1, // Per second
};
const rateLimiter = new RateLimiterMemory(opts);
rateLimiter.consume(remoteAddress, 1) // consume 1 point
.then((rateLimiterRes) => {
// 1 point consumed
// Some app logic here
})
.catch((rateLimiterRes) => {
// Not enough points to consume
});
我正在使用 net.Server 作为我的 TCP 服务器。
如何执行消息速率限制?
我为 Express (express-rate-limit) and Websocket (websocket-rate-limit) 找到了类似的解决方案,但没有为 TCP 找到类似的解决方案。
rate-limiter-flexible 包可用于此目的。
它支持Redis、MongoDB等多种存储。下面是最简单的内存存储示例:
const opts = {
points: 10, // 10 points
duration: 1, // Per second
};
const rateLimiter = new RateLimiterMemory(opts);
rateLimiter.consume(remoteAddress, 1) // consume 1 point
.then((rateLimiterRes) => {
// 1 point consumed
// Some app logic here
})
.catch((rateLimiterRes) => {
// Not enough points to consume
});