Socket.io: ์†Œ์ผ“์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด ๋ณ€๊ฒฝ

์— ๋งŒ๋“  2017๋…„ 11์›” 30์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: socketio/socket.io

์ฐธ๊ณ  : ์ง€์› ์งˆ๋ฌธ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ์ฑ„๋„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค: stackoverflow ๋˜๋Š” slack

์›ํ•˜๋Š” ์ž‘์—…:

  • [x] ๋ฒ„๊ทธ ๋ณด๊ณ 
  • [ ] ๊ธฐ๋Šฅ ์š”์ฒญ

ํ˜„์žฌ ํ–‰๋™

๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ โ‰ฅ ๋ฌธ์ž์—ด(๋˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ \u2265 )์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ e ๋ฐ โ‰ค ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. d

์žฌํ˜„ ๋‹จ๊ณ„(ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ์ธ ๊ฒฝ์šฐ)

๊ณ ๊ฐ ์ž…์žฅ์—์„œ

channel.emit('data', {data:'โ‰ฅ'});

์„œ๋ฒ„ ์ธก

socket.on('data',({data:bla})=>{
console.log(bla); // prints 'e'
});

์ฐธ๊ณ  : ๋น ๋ฅธ ๋‹ต๋ณ€์„ ์–ป๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ฐ”์ด์˜ฌ๋ฆฐ ์„ ๋ถ„๊ธฐํ•˜์—ฌ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก

์„ค์ •

  • ์šด์˜ ์ฒด์ œ: ์œˆ๋„์šฐ
  • ๋ธŒ๋ผ์šฐ์ €: ํฌ๋กฌ 62
  • socket.io ๋ฒ„์ „: 1.7.2

๊ธฐํƒ€ ์ •๋ณด(์˜ˆ: ์Šคํƒ ์ถ”์ , ๊ด€๋ จ ๋ฌธ์ œ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ œ์•ˆ)

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

2.0.4์—์„œ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ...
์ด ์ฝ”๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณ ๊ฐ ์ž…์žฅ์—์„œ

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

์„œ๋ฒ„ ์ธก

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

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

์ด๊ฒƒ์€ ์†Œ์ผ“์ด xhr ๋™์•ˆ ์—…๊ทธ๋ ˆ์ด๋“œ(์ฒ˜์Œ ์‚ฌ์šฉ)๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
websocket์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

#451 ๋ฐ #572 ์ฐธ์กฐ

๋ฒ„์ „ 1.x์—์„œ utf8 ๊ตฌ๋ฌธ ๋ถ„์„๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 2.x๋กœ ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ด€๋ จ๋œ:

2.0.4์—์„œ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ...
์ด ์ฝ”๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณ ๊ฐ ์ž…์žฅ์—์„œ

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

์„œ๋ฒ„ ์ธก

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

๋„ค ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

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