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