- ์๋ฐฉํฅ ํต์ (Full-Duplex)
- ์ค์๊ฐ ๋คํธ์ํน(Real Time-Networking)
- ํด๋ผ์ด์ธํธ -----hadshake ์์ฒญ ๋ฉ์ธ์ง----> ์๋ฒ
- ํด๋ผ์ด์ธํธ <----hadshake ์๋ต ๋ฉ์ธ์ง----- ์๋ฒ
- ํด๋ผ์ด์ธํธ -----data payload frames----> ์๋ฒ
- ํด๋ผ์ด์ธํธ <----data payload frames----- ์๋ฒ
- ํด๋ผ์ด์ธํธ -----close frame----> ์๋ฒ
- ํด๋ผ์ด์ธํธ <----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(์๋๋ก์ด๋)
- [MDN] WebSocket
- [NAVER D2] WebSocket๊ณผ Socket.io
- ์น ์์ผ ํต์ (Web Doorket) - Joker
- websocket, socket.io๋ฅผ ์ด์ฉํ ์๋ฐฉํฅ ํต์ - zych1751
- socket.io