Socket.io: Nodejs socket.io рдЕрдирд╣реЗрд▓реНрдб рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдЕрдирд╣реЗрд▓реНрдб рдПрд░рд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдХреНрддреВре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io

рдореИрдВ 2 рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП socket.io-stream рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╕рд░реНрд╡рд░ рдП: (рдлрд╛рдЗрд▓ рднреЗрдЬреЗрдВ)

```
рд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯрд┐рдпреЛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ');
var ss = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('socket.io-stream');

рд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ = рдХреНрд▓рд╛рдЗрдВрдЯрд┐рдпреЛ ( http://ServerB_Address );
clientSocket.on ('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рддреНрд░реБрдЯрд┐);
});

рд╡рд░ рд╕реНрдЯреНрд░реАрдо = ss.createStream ({рдСрдмреНрдЬреЗрдХреНрдЯрдореЛрдб: рд╕рдЪ});
рдПрд╕рдПрд╕ (рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ)ред рдПрдорд┐рдЯ ('рднреЗрдЬреЗрдВ-рдлрд╛рдЗрд▓', рд╕реНрдЯреНрд░реАрдо, рдбреЗрдЯрд╛);
рд╡рд░ рдЕрдкрд▓реЛрдбрдмрд╛рдЗрдЯреНрд╕ = 0;
рд╡рд░ рд╕реЗ = 0;
рд╡рд░ рд░реАрдбрд░ = fs.createReadStream (filePath, {рд╢реБрд░реВ: рд╕реЗ});
рд░реАрдбрд░.рдкрд╛рдЗрдк (рд╕реНрдЯреНрд░реАрдо)
.on('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рддреНрд░реБрдЯрд┐);
})
.on('рдбреЗрдЯрд╛', (рд╣рд┐рд╕реНрд╕рд╛) => {
рдЕрдкрд▓реЛрдбрдмрд╛рдЗрдЯреНрд╕ += рдмрдлрд░.рдмрд╛рдЗрдЯрд▓реЗрдВрде (рд╣рд┐рд╕реНрд╕рд╛);
});

Server B: (Receive File)

 ```
var fs = require('fs');
    var io = require('socket.io')(http);
    var ss = require('socket.io-stream');

    io.on('connection', (socket) => {
        // listen to send file
        ss(socket).on('send-mail', (stream, data) => {
            console.log(`*** Begin receive file`);

            var writer = fs.createWriteStream(downloadPath, {flags: 'a'});
            stream.pipe(writer);

            var size = 0;
            stream.on('data', (chunk) => {
                size += chunk.length;
                console.log(`*** Receive ${size} from mail`);
            });

            stream.on('end', () => {
                console.log(`*** End file`);
            });

            stream.on('error', (error) => {
                console.log(`*** Error when receiving file`);
                console.log(error);
            });
        });
    });

рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрджрд┐ рджреВрд╕рд░рд╛ рдиреЛрдб рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реИрдВрдбрд▓ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреНрд░реБрдЯрд┐ рдИрд╡реЗрдВрдЯ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

stream-error

рдХреГрдкрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ? рдФрд░ рдЕрдЧрд░ рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдереА ...

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

"рддреНрд░реБрдЯрд┐" рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╛ рдПрдХ рд╢реБрджреНрдз рдШрдЯрдирд╛ рдЙрддреНрд╕рд░реНрдЬрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВред

рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдереА ...

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MyMomSaysIAmSpecial picture MyMomSaysIAmSpecial  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thebinarypenguin picture thebinarypenguin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stnwk picture stnwk  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gCurtisCT picture gCurtisCT  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬрдм рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб 'рд╢рд╛рдорд┐рд▓' рд╣реЛ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 'рдкрд╣реБрдВрдЪ-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐' рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХрд╛ рдорд╛рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб '*' рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрддреНрдкрддреНрддрд┐ 'http://localhost:3000' рдЗрд╕рд▓рд┐рдП рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред XMLHttpRequest рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб withCredentials рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
akasrai picture akasrai  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ