Узел JS и браузер: приостановить и возобновить загрузку файла - PullRequest
0 голосов
/ 29 апреля 2019

Я делаю загрузку файлов на стороне клиента, используя nodejs из коробки.

У меня есть один URL-адрес окна.

Когда пользователь нажимает URL-адрес в браузере,

https://www.example.com? Url = https://box.com/file/123

Процесс, который я выполняю, следующий:

В узле j извлекают URL-адрес блока и отправляют запрос на box.com

  const obj = urlParse.parse(fileUrl, true);
  const creq = https.request(obj, (cres) => {

  cres.setEncoding('utf8');

if (cres.statusCode === 200) {
  res.writeHead(cres.statusCode, 
    { 
      'Content-Type': 'application/octet-stream',
      'Content-Disposition' : cres.headers['content-disposition']
    }
  );
} else {
  res.writeHead(cres.statusCode, 
    { 
      'Content-Type': 'application/json'
    });
}

// wait for data
cres.on('data', function(chunk){
  res.write(chunk);
});

cres.on('close', function(){
  return res.end();
});

cres.on('end', function(){

  return res.end();
});

}).on('error', function(e) {
return res.end(e.message);
});

creq.end();

Проблема, с которой я сталкиваюсь, заключается в том, что если в сети иногда возникают проблемы с сетью или скорость работы сервера - узла, то в браузере отображается ошибка Сбой сети - Ошибка сервера

Итак, яхотел бы реализовать, приостановить, когда сеть не в порядке, и возобновить, если сеть в порядке.

Может ли кто-нибудь, пожалуйста, помогите мне справиться с этим.

Процесс:

запрос: Браузер -> Узел js -> Ответ Box.com: Box.com -> Узел js -> Браузер (извлечение данных файла в виде фрагментов по частям)

Если сеть не работает,ошибка в сети.

Так что, если сеть не работает, мне нужно приостановить загрузку файла в узле js и браузере, и когдасеть исправна, она автоматически возобновит загрузку в браузере и на узле js.

Итак, файл будет загружаться даже в плохой сети, а не показывать сбойную сеть - Информация об ошибке сервера для пользователя.

...