Estoy implementando un servidor websocket para transferir archivos a los clientes, es decir, envío los bytes del archivo por partes desde el servidor al cliente, y desde el cliente uno los fragmentos de byte y creo el archivo con su extensión.
Mi problema es que aparentemente la cadena solo puede almacenar y concatenar solo hasta 500 mb aproximadamente, lo que limitaría la generación de archivos más grandes, como 1 gb o más, ya que se congela.
¿Hay alguna forma de almacenar en búfer esa gran cantidad de datos y poder descargarlos como archivos?
He buscado y encontrado sobre StreamSaver.js pero no he podido implementarlo con los ejemplos de Internet para crear ese búfer de datos gigante. ¡Gracias!
Dejo una muestra de mi código para pasar de una cadena hexadecimal a archivos.
function CreateFile(DataHex, FileName) { var binary = new Array(); for (var i=0; i<DataHex.length/2; i++) { var h = DataHex.substr(i*2, 2); binary[i] = parseInt(h,16); } var byteArray = new Uint8Array(binary); var filecomp = window.document.createElement('a'); filecomp.href = window.URL.createObjectURL(new Blob([byteArray], { type: 'application/octet-stream' })); filecomp.download = FileName; filecomp.click(); window.URL.revokeObjectURL(filecomp.href); }