[스프링] 스프링 WebSocket 연결 관리
웹소켓(WebSocket)은 양방향 통신을 지원하는 통신 프로토콜로, 실시간으로 데이터를 주고받을 수 있는 기술입니다. 스프링 프레임워크에서는 스프링 WebSocket을 통해 웹소켓을 쉽게 구현하고 관리할 수 있습니다.
1. 의존성 추가
스프링 프로젝트에 웹소켓을 사용하기 위해서는 먼저 필요한 의존성을 추가해야 합니다. Maven을 사용하는 경우 아래와 같이 의존성을 추가할 수 있습니다.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>5.3.9</version>
</dependency>
2. 웹소켓 설정
웹소켓을 사용하기 위해 스프링 설정 파일에 다음과 같이 WebSocket 설정을 추가합니다.
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
위 코드에서 MyHandler
는 웹소켓 요청을 처리하는 핸들러 클래스입니다.
3. 웹소켓 연결 관리
웹소켓 연결과 관련된 이벤트를 처리하려면 WebSocketHandler
인터페이스를 구현하여 사용자 정의 핸들러를 만들어야 합니다.
public class MyHandler extends TextWebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
// 웹소켓 연결이 열리면 호출됩니다.
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 클라이언트로부터 메시지를 수신했을 때 호출됩니다.
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
// 웹소켓 연결이 닫힐 때 호출됩니다.
}
}
위 코드에서 afterConnectionEstablished
, handleTextMessage
, afterConnectionClosed
메서드를 구현하여 각각 연결 개설, 메시지 수신, 연결 종료와 관련된 로직을 처리할 수 있습니다.
웹소켓을 사용해서 실시간으로 데이터를 주고받으려면 다양한 기능과 이벤트 처리가 필요합니다. 스프링 프레임워크의 확장성과 다양한 기능을 활용하여 웹소켓 연결을 효과적으로 관리할 수 있습니다.
참고문헌: