[WebSocket] 오늘의 테크용어 : 웹소켓이 뭐나면
HTTP 통신
http 요청 : 서버와 유저가 데이터를 주고 받기 위해 요청
전통적인 http 통신의 한계
- 실시간 게임, 실시간 채팅, 실시간 코인 거래소
- 코인 거래소의 경우
- 실시간으로 코인 가격을 보여줘야 함
- 2초마다 서버에 있던 코인 가격을 가져와야 함
- → 2초마다 서버에 http 요청
- ⇒ 비효율적 (2초마다 요청을 보내야 하는 것)
- ⇒ 서버가 알아서 2초마다 데이터를 보내주자
해결방법
- Server-Sent Event
- http 통신을 종료안하고 계속 유지
단점
- 서버만 일방적으로 메시지를 보낼 수 있다.
- 유저는 지속적인 데이터 수신만 가능
- WebSocket
- TCP 연결 기반으로 서버랑 유저간 양방향 통신 가능
- 연결법
- 유저 → 서버 : http 요청 (웹소켓으로 통신하자)
- 서버 : 허락
- http 요청을 웹소켓으로 업그레이드 할 수 있음
- 양방향 웹소켓 통신 시작
socket.io 라이브러리
- 연결 끊기면 자동 재접속 기능
- 웹소켓 접속자마다 자동 id 부여
- 모든 웹소켓유저에게 전체 메시지 전송가능
- 웹소켓방을 생성 가능
- socket.io는 Node.js용 서버 사이드 라이브러리.
- 자바 스프링으로 쓰기 위해서 netty-socket.io 를 사용한다!