Я создаю приложение для обмена файлами с WebRT C и Node.js. Это приложение командной строки, поэтому HTML не вызывается. Я читаю файл как поток и отправляю его, а затем загружаю файл на стороне получателя. Вот как я буду писать код отправителя:
// code taken from https://github.com/coding-with-chaim/file-transfer-
// final/blob/master/client/src/routes/Room.js
const reader = stream.getReader();
reader.read().then(obj => {
handlereading(obj.done, obj.value);
});
// recursive function for sending out chunks of stream
function handlereading(done, value) {
if (done) {
peer.write(JSON.stringify({ done: true, fileName: file.name }));
return;
}
peer.write(value);
reader.read().then(obj => {
handlereading(obj.done, obj.value);
})
}
На стороне получателя я буду конвертировать входящий файл (поток) в Blob, но люди в сети говорят, что возникнет проблема обратного давления если размер файла слишком велик. Как мне написать код загрузки файла, чтобы избежать обратного давления, чтобы он не треснул sh сторону приемника из-за переполнения буфера? Или должен быть другой подход к загрузке файла?