当前位置: 首页 > 知识库问答 >
问题:

javascript - 为什么使用node和discord.js开发的discord机器人登录超时?

邰钟展
2024-04-01

为什么我使用node开发的discord机器人无法登录?这个代理是可以访问discord.com的。 image.png

以下是index.js的代码

const { Client, Events, GatewayIntentBits } = require('discord.js')const { token } = require('./config.json')const { ProxyAgent } = require('undici')const client = new Client({    intents: [GatewayIntentBits.Guilds],    rest: {        agent: new ProxyAgent('http://127.0.0.1:7890'),    },})client.once(Events.ClientReady, (readyClient) => {    console.log(`Ready! Logged in as ${readyClient.user.tag}`)})client.login(token)

如果改用https代理,则报错
Error: Client network socket disconnected before secure TLS connection was established

我曾以为这是windows的问题,做了一个Linux虚拟机,在Linux里跑这个代码,通过物理机的Clash进行代理,问题还在。

共有1个答案

洪越泽
2024-04-01

从你的描述和提供的代码片段来看,可能有几个原因导致你的 Discord 机器人登录超时:

  1. 代理设置问题:你使用了 ProxyAgent 来设置代理,但这可能与你所使用的代理服务器不完全兼容。特别是当你尝试使用 HTTPS 代理时,出现了 "Client network socket disconnected before secure TLS connection was established" 的错误。这可能是因为代理服务器不支持或未正确配置 SSL/TLS。
  2. 代理服务器问题:你提到你的代理服务器可以访问 discord.com,但这并不意味着它可以正确地转发所有的 Discord 流量。特别是,一些代理服务器可能不支持 WebSocket(Discord.js 使用的主要通信协议),这可能导致登录超时。
  3. Discord.js 版本:确保你正在使用的 discord.js 版本与你的代码兼容。有些版本可能存在已知的问题或与特定的代理配置不兼容。
  4. Discord API 限制:有可能你的 Discord bot token 受到了某种限制或已被封禁。你可以尝试在 Discord Developer Portal 中重新生成一个新的 token 并更新你的代码。

为了解决这个问题,你可以尝试以下步骤:

  • 确保你的代理服务器支持并正确配置了 SSL/TLS。
  • 检查代理服务器是否支持 WebSocket,并确保它正确地转发了所有的 Discord 流量。
  • 尝试更新 discord.js 到最新版本,或查看其文档和社区以获取关于代理设置的更多信息。
  • 在 Discord Developer Portal 中重新生成 bot token 并更新你的代码。

如果以上步骤都不能解决问题,建议查看 discord.js 的官方文档和社区,或搜索与你遇到的问题相似的其他开发者的解决方案。

 类似资料:
  • 我试着这样做已经有一段时间了,但没有成功。我是一个相当新的javascript,所以我不是很擅长它。我希望它能像机器人一样工作: 它询问要将反应角色添加到哪个频道,例如,您用“#general”进行回复。 然后它会询问您也想添加哪个消息,您用您想添加反应角色的“[消息ID”回复。 然后它问哪个表情符号来获得这个角色,你用那个表情符号回答(也包括故障保险,以防它是硝基表情符号)。 然后它要求给这个人

  • 我正在尝试使用客户端将当前服务器的bot角色设置为粉红色。打开(“准备就绪”),但每当我使用当前拥有的内容运行bot时,控制台将返回: 这是我目前使用的代码。我知道我需要在每个公会上进行for循环,但我不确定我将如何做到这一点,我可以使用for或只是a。然而,我找不到这样做的正确方法。 提前感谢任何回复和帮助我留言的人。

  • 我试图弄清楚这是否是使用AWS为iOS开发用户/开发人员定义的登录凭据的“正确的”/“当前的/正确的流程”。 (我正在从Parse迁移到AWS,所以只阅读了一周的AWS)。 下载、安装并构建用于注册用户的iOS应用程序(比如电子邮件和密码(完成后,应用程序将显示电子邮件和密码的UIExtField,可在UIViewController中访问))。此外,还安装并提供了通过Cocoapods的iOS

  • 有没有可能让我的不和谐机器人发送消息,而不必在不和谐中键入命令?相反,我想从我的应用程序内部触发它。 上面的代码给出了一个属性错误:'NoneType'对象没有属性'send'

  • 直到最近,我的Discord机器人一直工作得很好,我没有对代码做任何更改,它与工作时处于相同的状态。但是出于某种原因,现在当我尝试通过控制台启动bot时(在我的情况下): 节点my-discord-bot.js 它什么也不做,没有错误,只是空白,我应该收到一个确认,说‘准备好了!’我的机器人应该上线,但这一切都不会发生。 下面是我用来启动我的bot(直到最近才开始工作)的代码: 我真的不知道问题出

  • 下面是代码: 出于某种原因,即使我使用用户id,bot也总是输出“未找到用户”。机器人有权这么做,有人知道解决办法吗?