一段时间后 Discord Bot 崩溃了
Discord Bot crashed after some time
所以我有一个运行良好的 discord 机器人,但一段时间后(大约 30 分钟)机器人崩溃并显示以下错误消息:
Error: Unhandled "error" event. ([object Object])
at Client.emit (events.js:186:19)
at WebSocketConnection.onError (C:\Users\Paul\Desktop\Hype-Bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:374:17)
at WebSocket.onError (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\event-target.js:128:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
at _receiver.cleanup (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\websocket.js:211:14)
at Receiver.cleanup (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\receiver.js:557:13)
at WebSocket.finalize (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\websocket.js:206:20)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
有人知道如何解决这个问题吗?
我一直在寻找在这类事情上需要帮助的人,瞧瞧,你来了。我也 运行 关注这个问题。当你的机器人向服务器发送一个叫做 heartbeat
的东西对他们说:i am online
时,你会发生网络错误。然后服务器会将其发回。如果它已发送并且没有从服务器返回消息,那么它将给您错误。您所要做的就是进入机器人文件夹中的以下路径 /node_modules/discord.js/src/client/websocket/WebSocketConnection.js
然后在该文件中转到如下所示的部分:
onError(error) {
if (error && error.message === 'uWs client connection error') {
this.reconnect();
return;
}
/**
* Emitted whenever the client's WebSocket encounters a connection error.
* @event Client#error
* @param {Error} error The encountered error
*/
this.client.emit(Constants.Events.ERROR, error);
}
我所做的是将其更改为:
onError(error) {
if (error && error.message === 'uWs client connection error') {
this.reconnect();
return;
}
console.log("Attempting to reconnect!")
return this.reconnect()
/**
* Emitted whenever the client's WebSocket encounters a connection error.
* @event Client#error
* @param {Error} error The encountered error
*/
this.client.emit(Constants.Events.ERROR, error);
}
希望对您有所帮助!
祝你好运,
赛杜斯
所以我有一个运行良好的 discord 机器人,但一段时间后(大约 30 分钟)机器人崩溃并显示以下错误消息:
Error: Unhandled "error" event. ([object Object])
at Client.emit (events.js:186:19)
at WebSocketConnection.onError (C:\Users\Paul\Desktop\Hype-Bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:374:17)
at WebSocket.onError (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\event-target.js:128:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
at _receiver.cleanup (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\websocket.js:211:14)
at Receiver.cleanup (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\receiver.js:557:13)
at WebSocket.finalize (C:\Users\Paul\Desktop\Hype-Bot\node_modules\ws\lib\websocket.js:206:20)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
有人知道如何解决这个问题吗?
我一直在寻找在这类事情上需要帮助的人,瞧瞧,你来了。我也 运行 关注这个问题。当你的机器人向服务器发送一个叫做 heartbeat
的东西对他们说:i am online
时,你会发生网络错误。然后服务器会将其发回。如果它已发送并且没有从服务器返回消息,那么它将给您错误。您所要做的就是进入机器人文件夹中的以下路径 /node_modules/discord.js/src/client/websocket/WebSocketConnection.js
然后在该文件中转到如下所示的部分:
onError(error) {
if (error && error.message === 'uWs client connection error') {
this.reconnect();
return;
}
/**
* Emitted whenever the client's WebSocket encounters a connection error.
* @event Client#error
* @param {Error} error The encountered error
*/
this.client.emit(Constants.Events.ERROR, error);
}
我所做的是将其更改为:
onError(error) {
if (error && error.message === 'uWs client connection error') {
this.reconnect();
return;
}
console.log("Attempting to reconnect!")
return this.reconnect()
/**
* Emitted whenever the client's WebSocket encounters a connection error.
* @event Client#error
* @param {Error} error The encountered error
*/
this.client.emit(Constants.Events.ERROR, error);
}
希望对您有所帮助!
祝你好运,
赛杜斯