рдореИрдВ 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);
});
});
});
рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрджрд┐ рджреВрд╕рд░рд╛ рдиреЛрдб рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реИрдВрдбрд▓ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреНрд░реБрдЯрд┐ рдИрд╡реЗрдВрдЯ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреГрдкрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ? рдФрд░ рдЕрдЧрд░ рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ?
"рддреНрд░реБрдЯрд┐" рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╛ рдПрдХ рд╢реБрджреНрдз рдШрдЯрдирд╛ рдЙрддреНрд╕рд░реНрдЬрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВред
рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдереА ...
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдереА ...