π
WebSocket
μλ°©ν₯ μ€μκ° ν΅μ
WebSocketμ RFC 6455λ‘ μ μλ νλ‘ν μ½λ‘, μ΅μ΄ HTTP νΈλμ °μ΄ν¬ μ΄ν TCP μ°κ²°μ μ μ§νλ©° μλ°©ν₯ ν΅μ μ μ§μν©λλ€. μλ²κ° ν΄λΌμ΄μΈνΈμ λ¨Όμ λ°μ΄ν°λ₯Ό λ³΄λΌ μ μμ΄ μ€μκ° μ ν리μΌμ΄μ μ μ ν©ν©λλ€.
ꡬ쑰 λ€μ΄μ΄κ·Έλ¨
π
Client
Browser / Bot / App
β HTTP Upgrade
→
←
β‘ 101 Switching
TCP μ μ§
←
β’ μλ°©ν₯ λ©μμ§
→
β£ Close νλ μ
π₯οΈ
Server
WebSocket Server
νλ¦ μ€λͺ
- ν΄λΌμ΄μΈνΈκ° HTTP Upgrade μμ²μΌλ‘ νΈλμ °μ΄ν¬ μμ
- μλ²κ° 101 Switching Protocols μλ΅, TCP μ°κ²° μ μ§
- μλ°©ν₯ μ±λ β μλ²/ν΄λΌμ΄μΈνΈ λͺ¨λ μμ λ‘κ² λ©μμ§ μ μ‘
- μ΄λ μͺ½μ΄λ Close νλ μμΌλ‘ μ°κ²° μ’ λ£
νμ© μ: Slack Socket Mode, Discord Gateway, μ€μκ° μ±ν
, κ²μ
λμ νλ¦
1
ν΄λΌμ΄μΈνΈκ° HTTP Upgrade μμ²μΌλ‘ WebSocket νΈλμ °μ΄ν¬ μμ
2
μλ²κ° 101 Switching Protocolsλ‘ μλ΅, TCP μ°κ²° μ μ§
3
μλ°©ν₯ μ±λ ν립 β μλ²/ν΄λΌμ΄μΈνΈ λͺ¨λ μμ λ‘κ² λ©μμ§ μ μ‘
4
μ΄λ μͺ½μ΄λ Close νλ μμ λ³΄λ΄ μ°κ²° μ’ λ£
μ₯μ
- ✓ μ§μ ν μλ°©ν₯ μ€μκ° ν΅μ
- ✓ μλ²κ° λ¨Όμ λ°μ΄ν° push κ°λ₯
- ✓ HTTP μ€λ²ν€λ μμ΄ κ²½λ νλ μ
- ✓ λ°©νλ²½ λ€μμλ μμλ°μ΄λ μ°κ²°λ‘ λμ
λ¨μ
- ✗ μ°κ²° μ μ§ λΉμ© (μλ² λ©λͺ¨λ¦¬/컀λ₯μ )
- ✗ μ°κ²° λκΉ μ μ¬μ°κ²° λ‘μ§ νμ
- ✗ λ‘λλ°Έλ°μ μ€μ 볡μ‘
- ✗ HTTP μΊμ± λΆκ°
μ¬μ© μ¬λ‘
μ±ν
μ ν리μΌμ΄μ
μ€μκ° λμ보λ/λͺ¨λν°λ§
μ¨λΌμΈ κ²μ
νμ
μλν° (Google Docs)