Discord.js бот продолжает получать случайные ошибки

#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. Да, я пытался установить это, но не знаю, как это работает