如何避免使用discord.js api超过速率限制



我正在努力了解不和谐的API是如何工作的。尤其是利率限制政策。通过阅读文档。我需要实现一个逻辑来跟踪在我进行请求时作为响应标头发送的无效请求的速率。然而,当我使用poster来完成(请求(时,响应标头并不包括文档这一部分中显示的速率限制信息。因此,我不知道如何处理这个问题。

所以我有两个问题:

  1. 如何在响应中获取速率限制标头
  2. 如何在我的代码中实现逻辑,以防止我的后端在达到限制时发送请求,并在下次尝试前设置超时,从而避免我的IP被discord禁止

我的expressjs代码示例:

const addnew = async (req, res) => {
try {
const { memberId, guildId, type, value, embed } = req.body;

res
.status(400)
.send({ error: "error" });
return;

await client.addnew(memberId, guildId, type, value, embed);
res.status(200).send(req.body);
} catch (err) {
console.log(err);
res.status(500).send(err);
}
};

Discord.js具有为您处理利率限制问题的逻辑。如果监视Client#rateLimit事件,您可以看到,如果您在代码中发出过多的API请求,则会触发该事件。这意味着您的请求已经排队,一旦超过您的费率限制持续时间,Discord.js就会发送这些请求。

最新更新