๐™ฌ๐™š๐™—๐™จ๐™ค๐™˜๐™ ๐™š๐™ฉ

uuuouuoยท2022๋…„ 5์›” 11์ผ
0
post-thumbnail

๐Ÿ“ WebSocket


โœ” Socket ์ข…๋ฅ˜

1. WebSocket

  • ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์†Œ์ผ“ ํ†ต์‹ ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์›น์†Œ์ผ“
  • HTTP ์ƒ์— ์กด์žฌ (ws://... โ†’ ์›น์†Œ์ผ“ํ”„๋กœํ† ์ฝœ)
  • IE(Internet Explorer) 10+ ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์Šคํ”„๋ง์—์„œ๋Š” ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•จ
  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋Š์–ด์ง€์ง€ ์•Š๊ณ  ๊ณ„์† ๋ถ™์–ด์žˆ์Œ (Poilling, Long Polling)

2. SockJS

  • Node.js์˜ soket.io์™€ ์œ ์‚ฌ
  • ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ์†Œ์ผ“ ์‚ฌ์šฉ โ†’ IE8๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€
  • Spring์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” sockjs-client library ์‚ฌ์šฉ

3. STOMP (Simple Text Oriented Messaging Protocol)

  • ๋ฉ”์„ธ์ง• ์ „์†ก์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ•œ ํ”„๋กœํ† ์ฝœ
  • Streaming Text Oriented Messaging Protocol : ํ† ํ”ฝ ๊ตฌ๋…๋ฐฉ์‹
    โžก ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ๋•Œ ์•ฝ์†๋œ ๋ฉ”์„ธ์ง€๋ฅผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•˜๋Š” ๊ฒƒ
  • topic / queue ๋ฐฉ์‹ : topic์„ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉ์‹๊ณผ ํŠน์ • queue๋ฅผ ์ •ํ•ด์„œ ๋ฐ”๋ผ๋ณด๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹
    โžก topic: ์ผ๋Œ€๋‹ค ๊ตฌ๋…๋ฐฉ์‹, ๋‹ค์ˆ˜์—๊ฒŒ ๋ฉ”์„ธ์ง€ ๋ณด๋‚ผ ๊ฒฝ์šฐ
    โžก queue: ์ผ๋Œ€์ผ ๊ตฌ๋…๋ฐฉ์‹, ํŠน์ •๋Œ€์ƒ์—๊ฒŒ ๋ฉ”์„ธ์ง€ ๋ณด๋‚ผ ๊ฒฝ์šฐ
  • SockJS์œ„์— ์“ฐ์ด๋Š” ์„œ๋ธŒ ํ”„๋กœํ† ์ฝœ
    โžก ๋ฉ”์„ธ์ง€ ํฌ๋งท์ด ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์œ ๋กญ๊ฒŒ ์ „์†ก ๊ฐ€๋Šฅ
    โžก ์†Œ์ผ“ ๋ชจ๋‘ JSONํ˜•์‹์œผ๋กœ ๊ฐ€๋Š”๊ฒŒ ์ข‹์Œ
  • stomp js library ์‚ฌ์šฉ โ†’ Spring์— ์ข…์†์ ์ธ ํŽธ
  • ์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ โ†’ ๊ฐ€์žฅ ๊ฐ€๋ณ
    • ์†Œ์ผ“์œผ๋กœ ๋ฐ”๋กœ ๋ถ™๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญํ•˜๊ธฐ ๋•Œ๋ฌธ
    • ์†Œ์ผ“๊ณผ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ์•„๋‹Œ ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐ
    • ํ•˜๋‚˜์˜ ํ† ํ”ฝ๋งŒ ๋ณด๊ณ ์žˆ์œผ๋ฉด ๋๋‚˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ
    • ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์žˆ์œผ๋ฉด ์žˆ๋Š” ์„ธ์…˜ ๋‹ค ์œ ์ง€ํ•ด์•ผํ•จ
      โžก ํ•˜์ง€๋งŒ STOMP๋Š” 10์ดˆ์— ํ•œ๋ฒˆ์”ฉ ์—ฐ๊ฒฐ ํ™•์ธํ•ด์คŒ
      โžก ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€๋ฒผ์›Œ์ง
      โžก ํฐ์— ํ‘ธ์‹œ ๋ณด๋‚ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ตฌ๋…๋ฐฉ์‹ ๊ฐ€๋Šฅ

0๊ฐœ์˜ ๋Œ“๊ธ€