我试图了解不和谐 API 的工作原理。尤其是限速政策。通过阅读docs https://discord.com/developers/docs/topics/rate-limits#invalid-request-limit。我需要实现一个逻辑,用于跟踪在执行请求时作为响应标头发送的无效请求的比率。但是,当我使用邮递员执行此操作(请求)时,响应标头不包含速率限制信息,如所示这部分文档 https://discord.com/developers/docs/topics/rate-limits#header-format。因此,我不知道如何处理这个问题。
所以我有两个问题:
- 如何在响应中获取速率限制标头?
- 如何在我的代码中实现逻辑,以防止我的后端在达到限制时发送请求,并在下次尝试之前设置超时,以避免我的 IP 被不和谐禁止?
我的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 https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-rateLimit事件,您可以看到,如果您在代码中发出太多 API 请求,该事件就会触发。这意味着您的请求已排队,一旦超出您的速率限制持续时间,Discord.js 将发送它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)