본문 바로가기

dev/스프링

Spring Boot Redis Suscriber WebSocket

Redis 채널로부터 수신한 메시지를 Sprinb Boot에서 웹 소켓으로 표출하는 방법입니다.

 

https://tiqndjd12.tistory.com/260

 

Spring Boot Redis Subscriber

저번에 작성한 Spring Boot Redis Publisher에 이어 Subscriber 구현하는 방법입니다. spring-boot-starter-data-redis 라이브러리를 추가합니다. Redis 채널로부터 메시지를 수신하는 설정 클래스입니다. application.yml

tiqndjd12.tistory.com

 

 

https://tiqndjd12.tistory.com/197

 

Spring Boot WebSocket

웹 소켓은 웹 브라우저와 서버 사이에 양방향으로 데이터를 전송해 주는 통신 기술입니다. 스프링 부트에서 웹 소켓 연계 기능 추가하는 것은 어렵지 않습니다. pom.xml에 spring-websocket dependency를

tiqndjd12.tistory.com

 

이전에 작성한 Redis Subscriber와 Spring Boot 웹 소켓 연계하는 코드를 발췌해서 진행하겠습니다.

 

pom.xml

 

spring-boot-starter-websocket와 spring-boot-starter-thymeleaf 라이브러리를 추가합니다.

 

 

WebSocketHandler.class

 

스프링 부트와 웹 소켓 연계를 담당하는 핸들러입니다.

 

저번에 작성한 코드에 getFirstWebSocketsession 메소드를 추가했습니다.(52 ~ 54라인)

 

이 메소드는 테스트 목적으로 작성한 임시 메소드로 웹 소켓 세션 중에서 첫번째 세션을 리턴하고 있습니다.

 

WebSocketConfig.class

 

스프링에 웹 소켓 설정을 담당하는 WebSocketConfig 클래스입니다.

 

앞에서 생성한 핸들러를 등록하고, 클라이언트와 연계할 경로를 설정합니다.(17 ~ 20라인)

 

RedisSubscriberService.class

 

Redis 채널로부터 메시지를 수신하는 클래스입니다.

 

저번에는 Sysout으로 메시지를 표출했는데 이번에는 웹 소켓의 첫번째 세션에 해당 메시지를 전달하여 표출합니다.

 

Redis 메시지 발행 화면

 

Redis "test-channel"이라는 이름의 채널에 메시지를 발행합니다.

 

Redis 메시지 서버 확인

 

스프링에서 Redis 채널로부터 메시지를 수신한 것을 확인할 수 있습니다.

 

Redis 메시지 웹 소켓 확인

 

클라이언트에서 서버로부터 수신한 Redis 메시지를 웹 소켓으로 수신한 것을 확인할 수 있습니다.

'dev > 스프링' 카테고리의 다른 글

Spring RestControllerAdvice  (0) 2024.03.29
Spring Boot Redis 연계  (0) 2024.03.28
Spring Boot Redis Subscriber  (0) 2024.02.08
Spring Boot Redis Publisher  (0) 2024.02.05
Spring Boot Session Store Type Redis  (0) 2024.01.25