Skip to content

tree-s-computer/web-socket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

web-socket

์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ์€ HTTP ์™€๋Š” ๋‹ค๋ฅธ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฉ”์„ธ์ง€๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ๋œ๋‹ค. ์›น์†Œ์ผ“ ์—ฐ๊ฒฐ์„ ๋งบ๊ธฐ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์ฃผ๊ณ ๋ฐ›์€ ์ดํ›„ ์ง€์†์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. ๋งค๋ฒˆ ๋ฉ”์„ธ์ง€ ์ „์†ก์‹œ์— ์ƒˆ๋กญ๊ฒŒ ์—ฐ๊ฒฐ์„ ๋งบ์„ ํ•„์š”๊ฐ€ ์—†์–ด ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋‹ค. ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ์€ HTTP ์™€ ๋™์ผํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•œ๋‹ค.

์–‘๋ฐฉํ–ฅ ํ†ต์‹ 

๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•. ํ†ต์ƒ์ ์ธ HTTP ํ†ต์‹ ์€ client ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ์—๋งŒ Server๊ฐ€ ์‘๋‹ต์„ ํ•˜๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ ์ด์ง€๋งŒ, ์›น ์†Œ์ผ“์€ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Real Time Networking

์›น ํ™˜๊ฒฝ์—์„œ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ. ex. ์ฑ„ํŒ…, ์ฃผ์‹

How Web Sockets Work

  1. Opening Handshake : HTTP Upgrade request / HTTP 101 response
  2. Data transfer : WS frame
  3. Closing Handshake : CLose / Close Response

Room

๊ฐ namespace ๋‚ด์—์„œ ์ž„์˜์˜ ์ฑ„๋„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ room์ด๋ผ ํ•˜๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด room์— join๋˜์–ด ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ๋งŒ์˜ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰ ๊ฐ ํด๋ผ์ด์–ธํŠธ๋Š” socket์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ ์ด socket์€ namespace๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐ namespace๋Š” room์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

Socket Io Command

socket.connect(): ํด๋ผ์ด์–ธํŠธ ์†Œ์ผ“์„ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ

socket.disconnect(): ์†Œ์ผ“ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ

socket.send(): ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ๋œ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

socket.on('event', callback): ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

socket.emit('event', data): ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

socket.join(room): ํด๋ผ์ด์–ธํŠธ๋ฅผ ํŠน์ • ๋ฃธ์— ์กฐ์ธ์‹œํ‚จ๋‹ค.

socket.leave(room): ํด๋ผ์ด์–ธํŠธ๋ฅผ ํŠน์ • ๋ฃธ์—์„œ ๋‚˜๊ฐ€๊ฒŒ ํ•œ๋‹ค.

socket.broadcast.emit('event', data): ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.

socket.rooms: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜„์žฌ ์กฐ์ธํ•œ ๋ชจ๋“  ๋ฃธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜

socket.id: ์†Œ์ผ“์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋ฅผ ๋ฐ˜ํ™˜

ref

https://poiemaweb.com/nodejs-socketio

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published