[스프링] 스프링 WebSocket의 요청-응답 구조

웹소켓은 실시간 양방향 통신을 제공하는 프로토콜로, 클라이언트와 서버 간의 연결을 유지하면서 데이터를 전송할 수 있습니다. 스프링 프레임워크스프링 WebSocket 모듈을 통해 이러한 웹소켓을 지원합니다. 이번 포스트에서는 스프링 WebSocket을 사용하여 웹소켓 요청과 응답을 다루는 방법을 살펴보겠습니다.

1. 스프링 WebSocket 설정

스프링 프레임워크에서 WebSocket을 사용하기 위해서는 @EnableWebSocket 어노테이션을 사용하여 WebSocket을 활성화해야 합니다. 이후 각 클라이언트 요청에 대한 처리를 담당할 WebSocketHandler 클래스를 정의해야 합니다.

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(new MyWebSocketHandler(), "/my-websocket-endpoint");
    }
}

2. WebSocket 요청 처리

WebSocketHandler 클래스는 TextWebSocketHandler 클래스를 확장하여 구현할 수 있습니다. 요청을 처리하기 위해서는 handleTextMessage 메서드를 오버라이딩하여 구현합니다.

public class MyWebSocketHandler extends TextWebSocketHandler {
    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) {
        // 클라이언트로부터의 메시지 처리
    }
}

3. WebSocket 응답 처리

클라이언트로부터의 요청을 받은 후, 서버에서는 이에 대한 응답을 다시 클라이언트로 전송할 수 있습니다. WebSocketSession을 사용하여 이를 처리합니다.

public class MyWebSocketHandler extends TextWebSocketHandler {
    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) {
        // 클라이언트로부터의 메시지 처리
        TextMessage response = new TextMessage("서버 응답 메시지");
        session.sendMessage(response);
    }
}

이로써, 스프링 프레임워크를 사용하여 웹소켓을 통한 요청과 응답을 처리하는 방법에 대해 알아보았습니다. 이를 통해 실시간 양방향 통신을 구현할 수 있는 다양한 기능들을 개발할 수 있을 것입니다.

더 많은 정보를 찾고 싶다면 아래 참고 자료를 참고하세요.

Spring WebSocket 공식 문서

Spring Boot Reference Guide