【问题标题】:How to avoid to exceed rate-limit by using discord.js api?如何避免使用 discord.js api 超过速率限制?
【发布时间】:2020-11-22 00:53:04
【问题描述】:

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

所以我有两个问题:

  1. 如何在响应中获取速率限制标头?
  2. 如何在我的代码中实现逻辑以防止我的后端在达到限制时发送请求并在下次尝试之前设置超时以避免我的 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);
  }
};

【问题讨论】:

    标签: node.js express http-headers discord.js rate-limiting


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-08-23
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2016-02-22
      相关资源
      最近更新 更多