Spring websocket chatting server(2) - Stomp로 채팅서버 고도화하기

[Spring Boot] WebSocket과 채팅 (1)

https://learnote-dev.com/java/Spring-게시판-API-만들기-webSocket으로-채팅서버-구현하기/

Web Socket


일반적으로 클라이언트와 서버가 데이터를 주고받을때는 HTTP 방식을 사용했다고 한다. 그러나 HTTP는 비연결성 프로토콜이기에 많은 양의 데이터 (또는 많은 클라이언트) 가 오고 갈 시, 상시 요청을 해야함은 물론이고, 그 때 마다 연결을 새로 해줘야 하기 때문에 부하가 생길 수 밖에 없었다. 따라서 이러한 문제를 해결하기 위해 등장한 것이 웹 소켓이고, HTML 5 가 출시 되었을때도 웹 소켓을 포함하여 출시했다고 한다.

웹 소켓은 Connection을 유지하고 클라이언트의 요청 없이도, 데이터를 전송할 수 있는 프로토콜이다. 기본적으로 HTTP환경에서 작동하지만 HTTP와는 다른 방식으로 통신한다.

WebSocket의 접속 과정

WebSocket의 접속 과정

Session in WebSocket

구현을 하다가 WebSocketSession 객체를 사용하게 되는데 이 세션은 웹에서 사용하는 세션과 다른 개념이라고 한다. (웹에서는 클라이언트의 정보를 저장하는 객체를 의미) 웹 소켓에서 세션은 클라이언트가 웹 소켓에 접속했을때의 커넥션 정보를 담고 있다. 따라서 해당 세션을 이용해서 연결을 유지하고(통신 동기화) 클라이언트가 메세지를 서버로 보낼 수 있다.

*Spring WebSocket*


스프링으로 웹소켓 프로그램을 구현해보자!

의존성

implementation 'org.springframework.boot:spring-boot-starter-websocket'