Socket.İo Nodejs - File Transfer

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek

    Merhaba arkadaşlar, üç dört gündür uğraştığım bir olay var çözemedim olayı hemen açıklıyorum.

    browserdan socket.io ile dosyayı buffer kadar okuyup gönderiyorum, nodejs kısmında aldığı byteları dosyaya yazıyor.

    Sorun şu ki gönderdiğim bütün dosyalar hasarlı. Kod kısımlarını koyuyorum.

    Bu kısım dosyayı browserdan socket.emit ile bufferın uzunluğu 8192 byte okuyup gönderiyor.


        if(parseInt(startbyte) != parseInt(stopbyte))
        {
            if (parseInt(startbyte) + buffer > parseInt(stopbyte))
            {
                buffer = parseInt(stopbyte) - parseInt(startbyte);
            }
            var filereader = new FileReaderSync();
            var sli = file.slice(startbyte, startbyte + buffer);
            var text = filereader.readAsBinaryString(sli);
            startbyte += buffer;
            socket.emit('upload_process', { 'Data': text });
        }
        else
        {
            socket.emit('upload_done');
            self.terminate();
        }

     

        Bu kısım nodejs den dosyayı alıp yazan yer

                fs.write(fdx, data['Data'], null, 'Binary', function(err, Writen){ //Binary
                        socket.emit('upload_hearth');
                });

      

    upload_heard geldiği zaman bir sonraki buffer sırasını tekrar gönderiyor. Bu şekilde oluşturduğum dosyaların hepsi hasarlı.
    Fikri olan ?


    Who is detCode?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek

    sorun çözümü,
    socket.io yu file transferde kullanmayın, bytelar bozuluyor veya bilmiyorum nedenini.
    formidable ismindeki library'yi kendi istediğim şekilde %50 gibi bir kısımını editledim. ayrıca socket.io dan çok daha hızlı file transfer konusunda.


    Who is detCode?
Toplam Hit: 1104 Toplam Mesaj: 2