negezor / vk-io

Modern VK API SDK for Node.js
https://npm.im/vk-io
MIT License
549 stars 85 forks source link

проблема с longpoll #43

Closed Bobrovskih closed 6 years ago

Bobrovskih commented 6 years ago

Добрый день, Обновился с 3 версии на версию 4

После старта получения лонгпол обновлений Получаю ошибку И лонгполл запросы как будто начинают циклиться Получаю одно и тоже сообщение тысячи раз (за несколько секунд)

Ниже код и логи (DEBUG=vk-io:updates)

Прошу подсказать, как исправить проблему? Что нужно сделать чтобы longpoll опрос работал корректно?

Версия "vk-io": "4.0.0-alpha.6"

import VK from 'vk-io';
import dbutils from './dbutils';

const options = { token: environments.token };
const vk = new VK(options);
const { updates } = vk;

updates.use(async (context: any, next: Function) => {
    console.log('middleware 1');
    console.log('Current Date Time:', new Date().toLocaleString());
    console.log('vk.updates.ts', vk.updates.ts);
    console.log('->updates.use', context);

    if (!isMessageType(context)) {
        return false;
    }

    // console.log('context type = message', context);
    await dbutils.saveTS(vk.updates.ts);

    if (context.isOutbox()) {
        console.log('исходящее сообщение');
        return false;
    }

    return await next();
});

(async () => {
    const { ts } = await dbutils.getTS();
    console.log('preload ts ', ts);
    updates.ts = ts || null;

    try {
        let result = await updates.startPolling();
        console.log(new Date().toLocaleString(), 'Vk longpoll started!');
    } catch (error) {
        console.log('Warning: Vk longpoll start error!', error);
    }

})();
retrying reset
preload ts  1714689932
  vk-io:updates http --> +0ms
2017-12-12 13:11:34 Vk longpoll started!
Debugger attached.
  vk-io:updates http <-- +20s
  vk-io:updates http --> +5ms
Debugger listening on ws://127.0.0.1:9230/1ef9cd32-cb57-42b8-92c2-c0437c120919
For help see https://nodejs.org/en/docs/inspector
  vk-io:updates http <-- +20s
  vk-io:updates http --> +2ms
  vk-io:updates http <-- +20s
  vk-io:updates http --> +2ms
  vk-io:updates longpoll error { UpdatesError: Polling request failed
    at Updates.fetchUpdates (C:\chat\vkbot\node_modules\vk-io\lib\updates\index.js
:626:13)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7) code: 'POLLING_
REQUEST_FAILED', name: 'UpdatesError' } +9s
  vk-io:updates longpoll restart request +2ms
  vk-io:updates http --> +3s
  vk-io:updates http <-- +17ms
  vk-io:updates longpoll error { UpdatesError: The server has failed
    at Updates.fetchUpdates (C:\chat\vkbot\node_modules\vk-io\lib\updates\index.js
:637:13)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7) code: 'NEED_RES
TART', name: 'UpdatesError' } +19ms
  vk-io:updates longpoll restarted error { APIError: Code №10 - Internal server er
ror
    at API.callMethod (C:\chat\vkbot\node_modules\vk-io\lib\api\index.js:260:35)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
  code: 10,
  name: 'APIError',
  params:
   [ { key: 'oauth', value: '1' },
     { key: 'method', value: 'messages.getLongPollServer' },
     { key: 'v', value: '5.69' },
     { key: 'lp_version', value: '2' } ] } +2s
  vk-io:updates http --> +3s
  vk-io:updates http --> +366ms
  vk-io:updates http --> +382ms
  vk-io:updates http --> +379ms
  vk-io:updates http --> +399ms
  vk-io:updates http --> +359ms
  vk-io:updates http --> +390ms
  vk-io:updates http --> +373ms
  vk-io:updates http --> +450ms
  vk-io:updates http --> +315ms
  vk-io:updates http --> +374ms
  vk-io:updates http --> +394ms
  vk-io:updates http --> +366ms
  vk-io:updates http --> +395ms
  vk-io:updates http --> +374ms
  vk-io:updates http --> +377ms
  vk-io:updates http --> +383ms
  vk-io:updates http --> +392ms
  vk-io:updates http --> +370ms
  vk-io:updates http --> +388ms
  vk-io:updates http --> +365ms
  vk-io:updates http --> +377ms
  vk-io:updates http --> +394ms
  vk-io:updates http --> +392ms
  vk-io:updates http --> +422ms
  vk-io:updates http --> +339ms
  vk-io:updates http --> +456ms
  vk-io:updates http --> +301ms
  vk-io:updates http --> +369ms
  vk-io:updates http --> +376ms
  vk-io:updates http --> +366ms
  vk-io:updates http --> +386ms
  vk-io:updates http --> +391ms
  vk-io:updates http --> +380ms
  vk-io:updates http --> +359ms
  vk-io:updates http --> +390ms
  vk-io:updates http --> +367ms
  vk-io:updates http --> +441ms
  vk-io:updates http --> +484ms
  vk-io:updates http --> +229ms
  vk-io:updates http --> +364ms
  vk-io:updates http --> +397ms
  vk-io:updates http --> +369ms
  vk-io:updates http --> +376ms
  vk-io:updates http --> +386ms
  vk-io:updates http --> +374ms
  vk-io:updates http --> +390ms
  vk-io:updates http --> +385ms
  vk-io:updates http --> +405ms
  vk-io:updates http --> +346ms
  vk-io:updates http --> +374ms
  vk-io:updates http --> +376ms
  vk-io:updates http --> +419ms
  vk-io:updates http <-- +247ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +125ms
  vk-io:updates http <-- +282ms
  vk-io:updates http --> +2ms
  vk-io:updates http --> +62ms
  vk-io:updates http <-- +309ms
  vk-io:updates http --> +3ms
  vk-io:updates http --> +80ms
  vk-io:updates http <-- +290ms
  vk-io:updates http --> +4ms
  vk-io:updates http --> +112ms
  vk-io:updates http <-- +289ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +83ms
  vk-io:updates http <-- +263ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +93ms
  vk-io:updates http <-- +306ms
  vk-io:updates http --> +2ms
  vk-io:updates http --> +76ms
  vk-io:updates http <-- +295ms
  vk-io:updates http --> +12ms
  vk-io:updates http --> +77ms
  vk-io:updates http <-- +347ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +27ms
  vk-io:updates http <-- +297ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +104ms
  vk-io:updates http <-- +271ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +81ms
  vk-io:updates http <-- +322ms
  vk-io:updates http --> +71ms
  vk-io:updates http --> +61ms
  vk-io:updates http <-- +230ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +142ms
  vk-io:updates http <-- +234ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +145ms
  vk-io:updates http <-- +234ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +160ms
  vk-io:updates http <-- +231ms
  vk-io:updates http --> +7ms
  vk-io:updates http --> +135ms
  vk-io:updates http <-- +234ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +135ms
  vk-io:updates http <-- +258ms
  vk-io:updates http --> +8ms
  vk-io:updates http --> +120ms
  vk-io:updates http <-- +233ms
  vk-io:updates http --> +2ms
  vk-io:updates http --> +148ms
  vk-io:updates http <-- +243ms
  vk-io:updates http --> +10ms
  vk-io:updates http --> +120ms
  vk-io:updates http <-- +233ms
  vk-io:updates http --> +4ms
  vk-io:updates http --> +134ms
  vk-io:updates http <-- +247ms
  vk-io:updates http --> +0ms
  vk-io:updates http --> +130ms
  vk-io:updates http <-- +248ms
  vk-io:updates http --> +0ms
  vk-io:updates http --> +290ms
  vk-io:updates http <-- +104ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +126ms
  vk-io:updates http <-- +295ms
  vk-io:updates http --> +0ms
  vk-io:updates http --> +77ms
  vk-io:updates http <-- +265ms
  vk-io:updates http --> +26ms
  vk-io:updates http --> +82ms
  vk-io:updates http <-- +346ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +37ms
  vk-io:updates http <-- +259ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +120ms
  vk-io:updates http <-- +259ms
  vk-io:updates http --> +2ms
  vk-io:updates http --> +111ms
  vk-io:updates http <-- +259ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +120ms
  vk-io:updates http <-- +244ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +153ms
  vk-io:updates http <-- +227ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +131ms
  vk-io:updates http <-- +257ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +162ms
  vk-io:updates http <-- +232ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +131ms
  vk-io:updates http <-- +249ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +111ms
  vk-io:updates http <-- +246ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +144ms
  vk-io:updates http <-- +224ms
  vk-io:updates http --> +4ms
  vk-io:updates http --> +135ms
  vk-io:updates http <-- +319ms
  vk-io:updates http --> +1ms
  vk-io:updates http --> +69ms
  vk-io:updates http --> +388ms
  vk-io:updates http <-- +8ms
  vk-io:updates http --> +0ms
  vk-io:updates http <-- +227ms
negezor commented 6 years ago

Тоже заметил что появляется при длительной работе. Чуть позже попробую разобраться.

T1MOXA commented 6 years ago

Аналогичная проблема.

T1MOXA commented 6 years ago

Ещё вот такие ошибки ловлю:

2017-12-12T23:40:17.466Z vk-io:updates http <--
2017-12-12T23:40:17.466Z vk-io:updates http -->
2017-12-12T23:40:17.472Z vk-io:updates http <--
2017-12-12T23:40:17.472Z vk-io:updates http -->
2017-12-12T23:40:17.472Z vk-io:updates http <--
2017-12-12T23:40:17.472Z vk-io:updates http -->
2017-12-12T23:40:17.476Z vk-io:updates http <--
2017-12-12T23:40:17.476Z vk-io:updates http -->
2017-12-12T23:40:17.502Z vk-io:updates longpoll error { UpdatesError: Polling request failed
    at Updates.fetchUpdates (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:626:13)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7) code: 'POLLING_REQUEST_FAILED', name: 'UpdatesError' }
2017-12-12T23:40:17.502Z vk-io:updates longpoll restart request
2017-12-12T23:40:17.511Z vk-io:updates http <--
2017-12-12T23:40:17.511Z vk-io:updates http -->
T1MOXA commented 6 years ago

Сегодня бот после выполнения команды наспамил мне в личку 200 сообщений. Подозреваю что из за этого бага.

TheLetslook commented 6 years ago

Аналогичная проблема.

T1MOXA commented 6 years ago

Обновился до последней версии, баг присутствует.

Bobrovskih commented 6 years ago

negezor, Добрый день Когда примерно планируется фикс баги? Возможно есть временное решение? Спасибо

negezor commented 6 years ago

Прямо сейчас работаю над решением этой проблемы. Толком не могу понять почему именно так происходит. Я думаю стоит как то по лучше переработать обработку ошибок.

negezor commented 6 years ago

Исправлено