HTML5 ์น ํ์ค ๊ธฐ์
์๋ฐฉํฅ(bidirectional)
ํต์ ํ๋กํ ์ฝ
ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ค์๊ฐ(real-time)
ํต์ ์ด ๊ฐ๋ฅ
stateless
ํ๋กํ ์ฝ์ด๊ธฐ ๋๋ฌธ์ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์๋๋คstateful
ํ๋กํ ์ฝ์ด๋คHandshake : ํต์ ์์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํ ๊ณผ์
// ํด๋ผ์ด์ธํธ ์์ฒญ
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com
// ์๋ฒ ์๋ต
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat
์๋ฐฉํฅ ํต์ ์ ์ํด ์น์์ผ ๊ธฐ์ ์ ํ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
HTML5 ์น ํ์ค ๊ธฐ์ ์ด ์๋๋ค. (์น์์ผ๊ณผ๋ ๋ค๋ฅธ ๊ฐ๋
)
HTML5 ์ด์ ์ ๊ธฐ์ ๋ก ๊ตฌํ๋ ์๋น์ค ์์ ์น ์์ผ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค
What Socket.IO ?
Socket.IO is a library that enables low-latency, bidirectional and event-based communication between a client and a server.
It is built on top of the WebSocket protocol and provides additional guarantees like fallback to HTTP long-polling or automatic reconnection.
** latency : ์ด๋ ํ ๋ฌผ๋ฆฌ์ ๋ณํ์ ๋ํ ์์ธ๊ณผ ๊ฒฐ๊ณผ ๊ฐ์ ์ง์ฐ ์๊ฐ
https://kbj96.tistory.com/46
https://doozi0316.tistory.com/entry/WebSocket%EC%9D%B4%EB%9E%80-%EA%B0%9C%EB%85%90%EA%B3%BC-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95-socketio-Polling-Streaming