限制同时发送消息

Posted

技术标签:

【中文标题】限制同时发送消息【英文标题】:Limit the sending of messages at the same time 【发布时间】:2019-10-27 23:19:03 【问题描述】:

我想知道是否有办法阻止频道不和谐中不同人同时发送多条消息。不管他的丝绸是用discord.js还是discord.py。就其本身而言,我希望机器人考虑发送的第一条消息并忽略同时发送的其他消息

诚挚的,

昆汀 S.

【问题讨论】:

您可以使用不和谐的慢速模式来实现这一点。 support.discordapp.com/hc/en-us/articles/…。您可以直接通过 discord UI 进行配置。您似乎也可以通过 discord.js API 使用TextChannel setRateLimitPerUser 方法(discord.js.org/#/docs/main/stable/class/…)对其进行配置。 @Gruntzy 这不是他在说的。慢速模式仅限制同一用户发送的消息。即慢速模式设置为 5 秒,如果我发送消息,我必须等待 5 秒才能再次发送,但另一个用户可以在这 5 秒内发送消息,然后必须等待他的 OWN 5 秒。 @Timesis 没错,我想做的是让我的机器人考虑发送的第一条消息,而不是不同用户同时收到的其他消息。 你不能阻止用户发送这样的消息。但是,您可以让机器人忽略或删除在收到第一条消息后发送的其他消息。不完全确定您的用例是什么。无论哪种方式,一条消息都必须在频道中实际发布,以便机器人对其采取行动。无法抢占消息的实际发送/发布。 【参考方案1】:

一种解决方案是跟踪最后收听的消息的时间戳,然后忽略在设定的时间量过去之前发送的任何消息。看这个例子...

let lastMessageTime;
const sec = 2; // Seconds to wait between messages.

client.on('message', message => 
  if (!message.guild || message.author.bot) return;

  if (lastMessageTime && message.createdTimestamp - (sec * 1000) < lastMessageTime) return;
  else lastMessageTime = message.createdTimestamp;

  // Continue with 'message' event.
);

【讨论】:

以上是关于限制同时发送消息的主要内容,如果未能解决你的问题,请参考以下文章

限制使用 twilio whatsapp API 发送消息

Rabbit MQ 阻止调用以发送消息并确保它为超出消息限制或超出消息大小限制提供正确的回复代码

Python Socket - 同时发送/接收消息

允许用户在消息应用中同时向多个用户发送消息

同时发送/接收消息套接字python

企业微信应用发送消息接口调用次数超过限制