同时 运行 使用相同令牌的不同程序

Simultaneously running separate programs using the same token

我使用 JDA (Java-Discord-API) 编写了一个 Discord 机器人,它被添加到我的一个服务器中。

我知道机器人正在使用 OAuth 来确保命令的来源(在本例中是我的 Java 代码和正确的登录令牌)已获得授权。

但我仍然可以 运行 第二个程序,它与第一个程序同时使用相同的 OAuth 令牌。

所以我的问题是:是否可以 运行 在多台不同的机器上使用不同的代码,使用相同的令牌操作一个机器人的多个独立程序?

例如,有多个程序,每个程序都有不同的机器人命令,当在命令前面使用某个命令前缀时,这将导致正确的程序做出反应 – $test:程序 1 反应,#test:程序 2 反应,.test:程序 3 反应,依此类推。

你绝对可以做到这一点。 Discord 不介意您 运行 在不同的机器上使用相同的令牌设置多个实例。所有事件都将通过 websocket 协议转发给您的所有机器人(适当地)。

可以使用此方法对具有不同前缀的机器人进行分区。但我不推荐它,因为你所有的机器人脚本都必须承担 运行 启动机器人的资源成本。您将花费多倍的 RAM 和 CPU 资源,而不是 运行 使用单个机器人并在内部处理不同的前缀。

但是,当您的机器人增长到数十万台服务器时,这是推荐的方法。通过称为“分片”的过程,您可以将不同服务器中的机器人分成“碎片”(通常每个碎片 1-2k)和 运行 不同机器上的不同碎片,以减轻对特定机器的影响主机服务器。

注意,Discord API 限制您每 24 小时最多 1000 次令牌登录。