3
您好我正在使用DDPRateLimiter限制meteor.js中的一些方法,我发现它限制了不仅仅是连接的每个人的方法调用!例如,对于这样的规则:Meteor.js:DDPRateLimiter限制是全局的,而不是每个连接
var updateUsernameRule = {
type: 'method',
name: 'updateUsername'
};
DDPRateLimiter.addRule(updateUsernameRule, 1, 30000);
在一个浏览器更新,然后在另一个更新时,它会导致限速错误。文档还不太清楚,默认行为根本不直观。我如何评价每个用户的限制?
您的解决方案对此有意义,但是如果我想限制发送的消息数量呢?如果我每秒钟执行10次方法调用的速率限制,那对单个用户来说是合理的。但是,如果我一次有100个用户登录,那么限制可能会受到影响。我刚开始考虑速率限制,我很惊讶用户不容易做到这一点。 – gkrizek
我的答案中的速率限制规则是每个用户,因此每个用户在30秒内发出1个请求。如果您为每个用户配置了10个方法调用的限制,则100个用户将被允许每个方法调用10次方法调用,并且具有定义的时间间隔。 – hwillson
谢谢。我想也许你的回答对我来说有点困惑。它是否检查每个呼叫的userId?或者只是检查用户是否有ID?基本上:是否限制所有登录用户每30秒1次请求或每30秒每个用户1次请求? – gkrizek