Socket.io: Nodejs socket.io ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์›น ์†Œ์ผ“ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜

์— ๋งŒ๋“  2018๋…„ 10์›” 31์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: socketio/socket.io

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);
            });
        });
    });

์ž˜ ๋˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ ์„œ๋ฒ„๊ฐ€ ์ค‘์ง€๋˜๋ฉด ํŒŒ์ผ์„ ์ „์†กํ•  ๋•Œ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์•ฑ์ด ์ถฉ๋Œํ•˜๊ณ  ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

stream-error

์•„๋ฌด๋„์ด ์˜ค๋ฅ˜๋ฅผ ์žก์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๋…ธ๋“œ ์„œ๋ฒ„ ๊ฐ„์— ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

socket.io๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค ..., ์žฅ๊ธฐ์ ์œผ๋กœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ต๋ณ€์ด ์—†๋Š” 300๊ฐœ ์ด์ƒ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ๋ณด์‹ญ์‹œ์˜ค...
๋งˆ์ง€๋ง‰ ์ค‘์š”ํ•œ ์ปค๋ฐ‹์€ 6๊ฐœ์›” ์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค...

๋ชจ๋“  3 ๋Œ“๊ธ€

"์˜ค๋ฅ˜" ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋˜๋Š” ์ˆœ์ˆ˜ ์ด๋ฒคํŠธ ์ด๋ฏธํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํด๋ผ์ด์–ธํŠธ ์†Œ์ผ“์— ์˜ค๋ฅ˜๋ฅผ ๋“ฑ๋กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹ญ์‹œ์˜ค.

socket.io๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค ..., ์žฅ๊ธฐ์ ์œผ๋กœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ต๋ณ€์ด ์—†๋Š” 300๊ฐœ ์ด์ƒ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ๋ณด์‹ญ์‹œ์˜ค...
๋งˆ์ง€๋ง‰ ์ค‘์š”ํ•œ ์ปค๋ฐ‹์€ 6๊ฐœ์›” ์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค...

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰