Skip to content

Latest commit

ย 

History

History
60 lines (47 loc) ยท 2.7 KB

README.md

File metadata and controls

60 lines (47 loc) ยท 2.7 KB

์›น ์†Œ์ผ“(Web Socket)

์›น ์†Œ์ผ“์˜ ํŠน์ง•

  1. ์–‘๋ฐฉํ–ฅ ํ†ต์‹ (Full-Duplex)
  2. ์‹ค์‹œ๊ฐ„ ๋„คํŠธ์›Œํ‚น(Real Time-Networking)

Handshaking ๋ฉ”์„ธ์ง€ ๊ตํ™˜

  1. ํด๋ผ์ด์–ธํŠธ -----hadshake ์š”์ฒญ ๋ฉ”์„ธ์ง€----> ์„œ๋ฒ„
  2. ํด๋ผ์ด์–ธํŠธ <----hadshake ์‘๋‹ต ๋ฉ”์„ธ์ง€----- ์„œ๋ฒ„
  3. ํด๋ผ์ด์–ธํŠธ -----data payload frames----> ์„œ๋ฒ„
  4. ํด๋ผ์ด์–ธํŠธ <----data payload frames----- ์„œ๋ฒ„
  5. ํด๋ผ์ด์–ธํŠธ -----close frame----> ์„œ๋ฒ„
  6. ํด๋ผ์ด์–ธํŠธ <----close frame----- ์„œ๋ฒ„
  • ์ตœ์ดˆ ์ ‘์†์—๋งŒ http ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ hadshaking๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— http header๋ฅผ ์‚ฌ์šฉ
  • ์›น ์†Œ์ผ“์„ ์œ„ํ•œ ๋ณ„๋„์˜ ํฌํŠธ๋Š” ์—†์œผ๋ฉฐ, ๊ธฐ์กด ํฌํŠธ(http-80, https-443)์„ ์‚ฌ์šฉ
  • ws๋Š” http ๊ธฐ๋ฐ˜, wss๋Š” https ๊ธฐ๋ฐ˜
  • ๊ตํ™˜ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„ธ์ง€๋Š” ํ…์ŠคํŠธ(text)์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ(binary)

์›น ์†Œ์ผ“ ํ†ต์‹ ๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ์ˆ 

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

์›น ์†Œ์ผ“ ํ†ต์‹ ์„ ์œ„ํ•œ ๊ธฐ์ˆ 

  • WebSocket API
    • API๋Š” W3C, ํ”„๋กœํ† ์ฝœ์€ IETF(Internet Engineering Task Force)์—์„œ ๊ด€์žฅ -> ํ‘œ์ค€
    • ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ„ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ํ™˜๊ฒฝ ์ œ๊ณต
    • 80๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„ ์—ฐ๊ฒฐ
  • Socket.io
    • WebSocket, FlashSocket, AJAX Long Polling, AJAX Multi part Streaming, IFrame, JSONP Polling์„ ํ•˜๋‚˜์˜ API๋กœ ์ถ”์ƒํ™”ํ•œ ๊ฒƒ
    • Node.js์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • SockJS
  • WebSocketClient(์•ˆ๋“œ๋กœ์ด๋“œ)

๋งํฌ


[TOP] | [HOME]