Thursday, 18 June 2020

How to download incoming file and prevent Backpressure while sending files through WebRTC data channels using streams?

​I'm building a file sharing application with WebRTC and Node.js. It is a command line application so there will be no HTML invloved. I'm reading the file as a stream and sending it, then at reciever's side I'll download the file. Here's how I'll be writing the sender's code :// 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); }) } On the reciever's side I'll be converting the incoming file (stream) to Blob but people online are saying that there will be an issue of backpressure if the size of the file is too large. How should I write the file dowloading code to avoid backpressure so that it doesn't crash the recie

Submitted June 18, 2020 at 07:59PM by DeusExMachina24

No comments:

Post a Comment