#node.js #discord.js
#node.js #discord.js
Вопрос:
итак, я запускаю своего бота, набрав «node.» в консоли, и он работает как обычно, но через некоторое случайное время выдает мне эту ошибку: Он запущен на node.js и бот работает нормально, пока ошибка не появится случайным образом. Как я уже сказал, это происходит просто случайным образом, если попытаться найти корреляцию с командами, выполняемыми на моем сервере, и появляется ошибка, но, похоже, ничего не отображается. Я запускаю своего бота следующим образом:
const Discord = require("discord.js");
const client = new Discord.Client();
client.login("myTokenGoesHere");
ошибка:
ErrorEvent {
target:
WebSocket {
_events:
[Object: null prototype] {
message: [Function],
open: [Function],
error: [Function],
close: [Function] },
_eventsCount: 4,
_maxListeners: undefined,
readyState: 2,
protocol: '',
_binaryType: 'nodebuffer',
_finalize: [Function: bound finalize],
_closeFrameReceived: false,
_closeFrameSent: false,
_closeMessage: '',
_closeTimer: null,
_finalized: true,
_closeCode: 1006,
_extensions: {},
_isServer: false,
_receiver:
Receiver {
_binaryType: 'nodebuffer',
_extensions: null,
_maxPayload: 0,
_bufferedBytes: 0,
_buffers: null,
_compressed: false,
_payloadLength: 393,
_fragmented: 0,
_masked: false,
_fin: true,
_mask: null,
_opcode: 1,
_totalPayloadLength: 0,
_messageLength: 0,
_fragments: null,
_cleanupCallback: null,
_isCleaningUp: false,
_hadError: false,
_loop: false,
add: [Function: bound add],
onmessage: null,
onclose: null,
onerror: null,
onping: null,
onpong: null,
_state: 0 },
_sender:
Sender {
_extensions: {},
_socket: [TLSSocket],
_firstFragment: true,
_compress: false,
_bufferedBytes: 0,
_deflating: false,
_queue: [] },
_socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'gateway.discord.gg',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 4,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'gateway.discord.gg',
_readableState: [ReadableState],
readable: false,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: null,
timeout: 0,
[Symbol(res)]: [TLSWrap],
[Symbol(asyncId)]: 29,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 19058858,
[Symbol(kBytesWritten)]: 19205,
[Symbol(connect-options)]: [Object] },
_error: null,
url: 'wss://gateway.discord.gg/?v=6amp;encoding=json',
_req: null },
type: 'error',
message: 'read ECONNRESET',
error:
{ Error: read ECONNRESET
at TLSWrap.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } }
Комментарии:
1. Можете ли вы предоставить нам больше деталей? Например, код, который развертывает бота с конфигурацией, или, если бот из библиотеки или компании, из какой библиотеки / компании бот?
2. Привет, спасибо за попытку помочь, не совсем уверен, что ты имеешь в виду, но он запущен на node.js и бот работает нормально, пока ошибка не появится случайным образом. Я запускаю своего бота следующим образом: const Discord = require («discord.js «); постоянный клиент = новый Discord. Client() ; client.login(«myTokenGoesHere»);
3. Вероятно, будет лучше, если вы включите дополнительную информацию, подобную этой, в сам вопросительный пост, чтобы его было легче увидеть и понять 🙂
Ответ №1:
Если вы нажмете на ошибку, она скажет: message: 'read ECONNRESET',
Это означает, что сброс соединения мог произойти из-за:
- У вашего Интернета проблемы / задержка
- Проблемы на серверах Cloudflares / Discords
- Ваша ОС перевела себя в спящий режим и разорвала соединение
Если ваш бот вылетает из-за этого, добавьте:
client.on('error', error => {
console.log(error);
// Do something eg. Log the Error
});
Комментарии:
1. Привет, спасибо за ответ, есть ли способ автоматически вставить «node.» в терминал, если это произойдет? Не может быть моим Интернетом, так как он составляет 250 Мбит / с , а моя ОС включена постоянно.
2. Вы могли бы использовать что-то вроде pm2 для управления процессом, который автоматически перезапускает x вашего бота
3. Да, я пытался установить это, но не знаю, как это работает