[스프링] 웹 소켓 통신 방법
본 문서에서는 스프링 프레임워크에서 웹 소켓을 이용한 양방향 통신 방법에 대해 알아보겠습니다.
1. 웹 소켓이란?
웹 소켓은 웹 애플리케이션과 서버 간의 양방향 통신을 위한 표준 프로토콜입니다. HTTP와 달리 상시 연결을 유지하고 있어 실시간 데이터 전송에 용이합니다.
2. 스프링을 이용한 웹 소켓 설정
2.1 의존성 추가
먼저 pom.xml
에 Spring Websocket 모듈의 의존성을 추가합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
2.2 웹 소켓 구성
WebSocketConfig
클래스를 생성하여 웹 소켓 구성을 정의합니다.
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws-endpoint").withSockJS();
}
}
2.3 웹 소켓 핸들러 구현
실제로 클라이언트의 메시지를 처리하기 위해 웹 소켓 핸들러를 구현합니다.
@Component
public class WebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
String payload = message.getPayload();
// 메시지 처리 로직 작성
}
}
2.4 클라이언트 활용
웹 소켓 클라이언트에서는 SockJS 및 Stomp 프로토콜을 이용하여 서버와 연결하고 메시지를 주고받을 수 있습니다.
var socket = new SockJS('/ws-endpoint');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
stompClient.subscribe('/topic/messages', function (message) {
// 메시지 수신 처리 로직 작성
});
});
3. 결론
스프링 프레임워크를 이용하여 웹 소켓을 구성하고 활용하는 방법에 대해 알아보았습니다. 웹 소켓을 이용하면 실시간으로 데이터를 교환하고 상황에 맞게 처리할 수 있어 다양한 웹 애플리케이션 개발에 활용될 수 있습니다.