【发布时间】:2020-03-25 21:00:33
【问题描述】:
我使用net.Server 作为我的 TCP 服务器。
如何强制执行消息速率限制?
我为 Express (express-rate-limit) 和 Websocket (websocket-rate-limit) 找到了类似的解决方案,但对于 TCP 却没有。
【问题讨论】:
标签: node.js typescript tcp rate-limiting ddos
我使用net.Server 作为我的 TCP 服务器。
如何强制执行消息速率限制?
我为 Express (express-rate-limit) 和 Websocket (websocket-rate-limit) 找到了类似的解决方案,但对于 TCP 却没有。
【问题讨论】:
标签: node.js typescript tcp rate-limiting ddos
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
});
【讨论】: