<Socket> 5. WebSocket 정리
by BFine반응형
WebSocket
1.1 WebSocket 소개
WebSocket
은 Cliet와 Server 사이의 TCP 연결을 통해 양방향 통신 하는 방법이다.- 포트 80와 443을 사용하며 방화벽을 재사용을 허락하는 HTTP 위에서 동작 한다.
- HTTP Upgrade 헤더를 사용하거나 프로토콜을 스위치해서 사용한다.
- handshake가 끝나면 TCP Socket은 Cliet와 Server 사이에서 연결된 상태로 남아있어 계속해서 메세지를 주고 받을 수 있다.
1.2 HTTP vs WebSocket
- HTTP는 request-response 모델로 구현되있지만
WebSocket
은 하나의 URL로 통신한다.(모든 어플리케이션의 메세지들은 같은 TCP 연결에서 동작한다.) - 기본적으로 Socket은 포트를 이용해서 양방향 실시간 통신(TCP,UDP)을 위해 사용한다.
WebSocket
은 비동기, 이벤트 중심의 메세지 처리 방법이고 low-level 전송프로토콜이다. 그리고 STOMP 등을 이용하여 high-level로 사용할 수 있다.
1.3 WebSocket 사용하는 이유
- 간단한 분단위 처리가 가능한 뉴스, 메일, 피드 등은 Ajax나 HTTP streaming, long polling으로 구현할 수 있지만 게임, 금융, 협업등은 좀더 실시간으로 할 필요가 있다.
WebSocket
은 낮은 지연속도, 높은 빈도, 많은 양의 메세지 를 처리할떄 효과적이다.
1.4 WebSocket로 다중 채팅 구현
- spring boot를 이용해서 간단한 채팅을 구현해보았다.
WebSocketConfigurer
를 이용해Handler
를 설정한다.
TextWebSocketHandler
를 상속받아 3가지(최초연결,통신중,연결해제)에 대한 메서드를 구현한다.
- Client도 마찬가지로
WebSocket
를 이용해서 Server와 연결한다.
- 실행화면
- 일반 HTTP와 WebSocket 비교 (Connection 방식이 변경된 것을 볼수있다.)
출처
반응형
'공부(2018~2019) - 스킨변경전 > Socket' 카테고리의 다른 글
<Socket> 4. Socket Programming 정리 (0) | 2019.05.14 |
---|---|
<Socket> 3. Network Programming 정리 (0) | 2019.05.08 |
<Socket> 2. I/O Stream 정리 (0) | 2019.05.07 |
<Socket> 1. Thread 정리 (0) | 2019.05.05 |
블로그의 정보
57개월 BackEnd
BFine