socket.io-stream ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ 2๊ฐ์ ๋ ธ๋ ์๋ฒ ๊ฐ์ ํ์ผ์ ์ ์กํ๊ณ ์์ต๋๋ค.
์๋ฒ A: (ํ์ผ ๋ณด๋ด๊ธฐ)
```
var clientIO = require('socket.io-client');
var ss = require('socket.io-stream');
var ํด๋ผ์ด์ธํธ ์์ผ = ํด๋ผ์ด์ธํธIO( http://ServerB_Address
);
clientSocket.on('์ค๋ฅ', (์ค๋ฅ) => {
console.log(์ค๋ฅ);
});
var ์คํธ๋ฆผ = ss.createStream({๊ฐ์ฒด ๋ชจ๋: true});
ss(clientSocket).emit('ํ์ผ ๋ณด๋ด๊ธฐ', ์คํธ๋ฆผ, ๋ฐ์ดํฐ);
var ์
๋ก๋๋ ๋ฐ์ดํธ = 0;
= 0์์ var;
var ํ๋
๊ธฐ = fs.createReadStream(ํ์ผ ๊ฒฝ๋ก, {์์: ์์});
reader.pipe(์คํธ๋ฆผ)
.on('์ค๋ฅ', (์ค๋ฅ) => {
console.log(์ค๋ฅ);
})
.on('๋ฐ์ดํฐ', (์ฒญํฌ) => {
UploadedBytes += Buffer.byteLength(์ฒญํฌ);
});
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);
});
});
});
์ ๋์ง๋ง ๋ ๋ฒ์งธ ๋ ธ๋ ์๋ฒ๊ฐ ์ค์ง๋๋ฉด ํ์ผ์ ์ ์กํ ๋ ๋ค๋ฅธ ์๋ฒ์ ์ฑ์ด ์ถฉ๋ํ๊ณ ์ฒ๋ฆฌ๋์ง ์์ ์ค๋ฅ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์๋ฌด๋์ด ์ค๋ฅ๋ฅผ ์ก์ ์์๋ ๋ฐฉ๋ฒ์ ๋งํด ์ค ์ ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ๋ ธ๋ ์๋ฒ ๊ฐ์ ํ์ผ์ ์ ์กํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด?
"์ค๋ฅ" ์ด๋ฒคํธ์ ๋ํด ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋๋ ์์ ์ด๋ฒคํธ ์ด๋ฏธํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์ค๋ฅ์ ๋ํด ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ํด๋ผ์ด์ธํธ ์์ผ์ ์ค๋ฅ๋ฅผ ๋ฑ๋กํ๊ธฐ ๋๋ฌธ์ ์๋ฅผ ๋ค์ด ์ฃผ์ญ์์ค.
socket.io๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค ..., ์ฅ๊ธฐ์ ์ผ๋ก ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๋ต๋ณ์ด ์๋ 300๊ฐ ์ด์์ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ฅผ ๋ณด์ญ์์ค...
๋ง์ง๋ง ์ค์ํ ์ปค๋ฐ์ 6๊ฐ์ ์ ์ด์์ต๋๋ค...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
socket.io๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค ..., ์ฅ๊ธฐ์ ์ผ๋ก ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๋ต๋ณ์ด ์๋ 300๊ฐ ์ด์์ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ฅผ ๋ณด์ญ์์ค...
๋ง์ง๋ง ์ค์ํ ์ปค๋ฐ์ 6๊ฐ์ ์ ์ด์์ต๋๋ค...