discord - 使用相同的 token 同时运行单独的程序

标签 discord discord-jda

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

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

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

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

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

最佳答案

你绝对可以做到这一点。 Discord 不介意您使用相同的 token 在不同的计算机上运行多个实例。所有事件都将通过 websocket 协议(protocol)转发到您的所有机器人(视情况而定)。

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

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

请注意,Discord API 限制每 24 小时最多 1000 次 token 登录。

关于discord - 使用相同的 token 同时运行单独的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69796271/

相关文章:

json - 使用 XHR 请求将 Discord 嵌入发送到 Webhook

java - Discord 机器人在 if/else 语句中遍历两条路径?

java - 当尝试运行我的java程序时,我收到错误: java. lang.ClassNotFoundException : jdk. tools.jaotc.Main

java - dv8tion 不和谐 java channel 权限

java - JDA如何通过ID获取消息

java - 在 JDA 中分配角色

python-3.x - 如何在 discord.py 中隐藏原始链接

python - 在discord.py @tasks.loop() 中发送消息

javascript - 获取超过 100 条消息

java - 状态更新 Discord 机器人