Проблемы с отключением и повторным подключением сети requestjs - PullRequest
0 голосов
/ 15 мая 2019

Я использую модуль узла запрос для загрузки нескольких файлов в приложении Electron.Но я сталкиваюсь с периодически возникающей проблемой, когда выключаю и снова включаю беспроводную сеть во время загрузки.например,

Если я загружаю 4 файла и выключаю и включаю беспроводную связь (с интервалом ~ 20 секунд), я вижу

  • 2 файла, успешно загруженных
  • 1 файл будет поврежден
  • 1 файл получит нулевой ответ (что приведет к зависанию моего приложения, пока я жду ответа)

Я также видел

  • все 4 файла успешно загружены
  • 2 - 3 последующих файла загружены
  • Затем 1 файл получает нулевой ответ (снова вызывая зависание в моем приложении на этом конкретном обещании)

В попытке обойти это, я установил тайм-аут по запросу на 20 секунд.Это приводит к тому, что время загрузки файлов не удивительно.Но когда сеть снова включается, она не восстанавливается.т.е. все загрузки продолжаются по таймауту.В то же время я могу взять URL-адреса самостоятельно и загрузить с помощью браузера.Но приложение по-прежнему находится в «плохом состоянии».

Что может вызвать эти проблемы?Какие-либо советы по отладке помимо включения отладки в запросе?

Код, который я использую

const stream = request(file.uri, {timeout: 20000})
  .on('error', (error) => {
    console.error(`Failure downloading ${timeMarker} with error ${error}`);
    resolve();
})
  .pipe(file.decipher)
  ..... etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...