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

我正在尝试了解 discord API 的工作原理。尤其是限速政策。通过阅读 docs .我需要实现一个逻辑来跟踪在我发出请求时作为响应 header 发送的无效请求的比率。但是,当我使用 postman 执行此操作(请求)时,响应 header 不包含速率限制信息,如 this part of the docs 中所示。 .因此,我不知道如何处理这个问题。

所以我有两个问题:

  1. 如何在响应中获取速率限制 header ?
  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 将发送它们。

https://stackoverflow.com/questions/63204309/

相关文章:

macos - 没有应用程序包的 QT 命令行可执行二进制文件有 Macdeployqt 吗?

python - Python的Tkinter模块如何让对话框窗口出现在最前面?

python - 如何使用python将NPZ文件转换为文本文件

python - 当我的播放器类与我的平台类之一发生碰撞时,如何制作和结束屏幕?

flutter - Firestore 复合查询不适用于 Flutter Web

python - 如何在不返回并更改数据的情况下更改 seaborn fiddle 图的 x 轴标签

python - 无法将从 MongoDB 检索到的 json 值返回到 python flask

python - 多交易所、多币种、多金额的套利算法

python - 使用 pydbgen 模块时出现 TypeError

mongodb - 更新嵌套数组的字段时,如何使 mongodb 的 "updated"停止?