웹소켓(WebSocket)을 사용하면 서버와 브라우저 간의 연결을 유지한 채로 데이터를 교환할 수 있습니다.
데이터는 패킷(packet) 형태로 전달되며, 전송은 커넥션 중단과 추가 HTTP 요청 없이 양방향으로 이루어집니다.
- 서버와 클라이언트 간의 메세지 교환을 위한 통신 규약
<aside>
💡 웹 소켓과 TCP 소켓은 차이가 있습니다.
</aside>
특징
- 실시간 양방향 통신 (Full- Duplex)
- HTTP 프로토콜과 달리 한번만 연결이 이루어지면 계속 연결을 유지함. (Real Time Networking)
웹 소켓 전의 방식
Polling
- 일정 주기로 서버에 요청을 보내는 방법
- 불필요한 request와 Connection을 생성하여 서버에 부담 주게됨.
- 요청 주기가 짧을 수록 부하가 큼
- 보통은 응답이 실시간이 아니며, 다수의 사용자가 동시에 사용하는 경우 사용된다.
Long Polling
- Polling과 비슷하지만 서버가 응답을 바로 전달하지 않는 방식
- 요청을 보냈을때, 서버가 응답을 바로 보내지 않고, 특정 이벤트나, 타임아웃이 발생했을 떄 응답을 전달하는 방식
- 응답 받은 클라이언트는 다시 서버 데이터로 요청