임대일

스프링(Spring): 스프링 부트에서 웹 소켓(Spring Framework Web Socket) 본문

스프링/지식

스프링(Spring): 스프링 부트에서 웹 소켓(Spring Framework Web Socket)

limdae94 2024. 7. 10. 22:44
 

Getting Started | Using WebSocket to build an interactive web application

In Spring’s approach to working with STOMP messaging, STOMP messages can be routed to @Controller classes. For example, the GreetingController (from src/main/java/com/example/messagingstompwebsocket/GreetingController.java) is mapped to handle messages t

spring.io

 

Spring Framework Web Socket

스프링에서는 Web Socket API 를 제공하여 WebSocket 메세지를 다룰 수 있다. 그리고 SockJS Fallback 은 WebSocket이 정상적으로 작동하지 않는 환경을 위한 SockJS 프로토콜을 지원한다. 마지막으로 STOMP 브로커 기능을 제공하고 있다.

 

 

1. WebSocket API

 

WebSocketHandler

WebSocketHandler는 실제로 클라이언트와 서버 간의 웹 소켓 통신을 처리한다. WebSocketHandler 인터페이스를 구현하거나 그를 확장하는 클래스를 사용하여 웹 소켓 메시지를 처리하고, 클라이언트와의 상호작용을 관리할 수 있다.

 

WebSocketHandler의 주요 역할

 

  • 연결 관리
    • 클라이언트의 연결이 열리거나 닫힐 때의 동작을 정의한다.
    • 예를 들어, 연결이 열리면 초기화 작업을 수행하고, 연결이 닫히면 자원을 정리하는 등의 처리를 할 수 있다.
  • 메시지 수신 및 처리
    • 클라이언트로부터 메시지를 수신했을 때의 동작을 정의한다.
    • 예를 들어, 특정 형식의 메시지를 파싱하고, 메시지에 따라 비즈니스 로직을 수행하는 등의 처리를 할 수 있다.
  • 메시지 송신
    • 클라이언트에게 메시지를 보낼 때의 동작을 정의한다.
    • 예를 들어, 특정 이벤트 발생 시 클라이언트에게 알림을 보내는 등의 처리를 할 수 있다.
  • 오류 처리
    • 발생할 수 있는 오류 상황을 처리한다.
    • 예를 들어, 메시지 처리 중 예외가 발생했을 때의 대응 방법을 정의하거나, 클라이언트와의 연결을 안전하게 종료하는 등의 처리를 할 수 있다.
  • 세션 관리
    • 각 클라이언트 연결에 대한 세션 관리를 수행한다.
    • 각 클라이언트에 대한 고유한 식별자나 상태 정보를 유지하고 관리할 수 있다.

 

 

작성중