Node.js (Discord.js)Bot仅在本地托管时播放音乐,否则会立即加入并离开

Node.js (Discord.js)Bot仅在本地托管时播放音乐,否则会立即加入并离开,node.js,bots,discord,discord.js,Node.js,Bots,Discord,Discord.js,我用Discord.js构建了一个机器人,它运行在几个朋友的服务器上,但我一直有一个无法解决的问题,我想不出还有什么可以尝试的。当我在任何托管服务上托管bot时!play命令导致bot加入语音频道,像往常一样返回“now playing”嵌入,立即离开,并表示队列为空。我知道人们在Heroku和Glitch上托管时遇到了问题,所以除了这些问题之外,我还尝试了Digital Ocean和AWS,每次都有相同的结果。在本地托管时,无论是使用“Thread start”还是托管服务的本地版本CLI命令

我用Discord.js构建了一个机器人,它运行在几个朋友的服务器上,但我一直有一个无法解决的问题,我想不出还有什么可以尝试的。当我在任何托管服务上托管bot时!play命令导致bot加入语音频道,像往常一样返回“now playing”嵌入,立即离开,并表示队列为空。我知道人们在Heroku和Glitch上托管时遇到了问题,所以除了这些问题之外,我还尝试了Digital Ocean和AWS,每次都有相同的结果。在本地托管时,无论是使用“Thread start”还是托管服务的本地版本CLI命令(如“heroku local”),一切都可以完美运行。这向我表明,该代码适用于所有音乐命令(因此我没有在这里包含任何片段),但在托管bot时,我缺少了一些东西


还有各种其他命令,包括当前天气/预报、ASCII文本格式和聊天调节功能,在托管时也可以正常工作。Youtube搜索命令工作正常,因此机器人访问Youtube API的能力似乎没有问题(我正在使用ytdl core进行播放)。一般来说,它似乎仅限于此播放问题。我花了很多时间试图弄明白这一点,并查阅了我能找到的所有相关资源,但似乎没有任何效果。我已经安装了人们用来解决问题的每一个ffmpeg或opus相关的buildpack,所以我不知道我在这一点上遗漏了什么。还有其他人遇到过类似的问题吗?

是否有bot正在使用的环境变量没有为其他主机设置?一些调试结果也会有帮助。对我来说,在Heroku上运行没有这个问题。@slothiful环境变量在所有平台上都是相同的,访问似乎没有问题。我已经尝试过调试,但问题本身并不是一个bug——它不是播放当前队列项,而是跳转到代码中表示队列为空的部分,然后离开语音频道。这一切都正常工作,因此不会返回任何错误消息。在代码的每个步骤中记录队列和任何相关变量,以从后端的角度了解到底发生了什么。这应该有助于找出问题所在。@slothiful现在就仔细研究一下,我会看看是否有什么发现。是否有机器人正在使用的环境变量没有为其他主机设置?一些调试结果也会有帮助。对我来说,在Heroku上运行没有这个问题。@slothiful环境变量在所有平台上都是相同的,访问似乎没有问题。我已经尝试过调试,但问题本身并不是一个bug——它不是播放当前队列项,而是跳转到代码中表示队列为空的部分,然后离开语音频道。这一切都正常工作,因此不会返回任何错误消息。在代码的每个步骤中记录队列和任何相关变量,以从后端的角度了解到底发生了什么。这应该有助于找出问题所在。@slothiful现在就仔细研究一下,我会看看是否有什么想法。