react, SpringBoot WebSocket 연결하기 (5/5)
Spring Boot에서 react에서 보낸 데이터 받고 재가공 후 보내기
react에서 /app 을 통해 서버로 보낸 데이터를 받아서 가공 후 다시 데이터를 구독 주소로 넘겨주자
여기서는 우리가 아는 일반 Spring Boot의
- Controller
- Service
- Mapper
3tier architecture로 진행된다.
1. /app 주소로 요청한거 Controller에서 받기
일반적인 Controller랑 똑같다.
똑같이 필요한 어노테이션 적용해주고 필요한 의존성을 주입한다.
2. react에서 요청한 주소를 매칭시켜준다.
/app 은 생략해서 작성
2-1. 만약 url에 있는 정보를 사용할 경우 @PathVariable 대신 @DestinationVariable로 사용하면 된다.
body로 데이터를 보내주기 때문에 @RequestBody로 body영역의 데이터를 받으면 된다.
3. 필요한 데이터 가공하기
가공이 필요한 데이터는 Service, Mapper 통해서 가공
4. SimpMessagingTemplate 통해서 각 구독 주소로 데이터 담아서 응답하기
SimpMessagingTemplate의 첫번째 파라미터는 destination(구독 주소)
두번째 파라미터는 데이터를 담는다.
특히 좋아요 유무는 본인만 알아야 하기 때문에 /queue/like + 좋아요 누른 아이디로
보내서 다른사람들은 해당 주소로 응답이 안가게 하고 본인만 받는다.
순서를 총 정리하자면
1. Spring Boot 웹소켓 Config 설정
2. React 웹소켓 연결, 구독 주소 설정
3. React에서 Spring Boot로 데이터 보내보기 (/app)
4. Spring Boot에서 데이터 받아지는지 확인하기 (@RequestBody, @DestinationVariable 활용)
5. 데이터 가공할거 있으면 가공 후 simpMessagingTemplate.convertAndSend("구독주소", 데이터); 보내주기
6. React에서 네트워크 탭 또는 log 찍어서 데이터 넘오는지 확인
7. React에서 넘어온 데이터를 useState로 활용
웹소켓 소스 코드
https://github.com/zxcvcx123/Spring-react-SockJS-STOMP-WebSocket
GitHub - zxcvcx123/Spring-react-SockJS-STOMP-WebSocket: SpringWebSocket
SpringWebSocket. Contribute to zxcvcx123/Spring-react-SockJS-STOMP-WebSocket development by creating an account on GitHub.
github.com
1. 웹소켓 설명
https://fuckingjava.tistory.com/159
2. Spring Boot에서 웹소켓 설정
https://fuckingjava.tistory.com/155
3. react에서 웹소켓 설정, 연결, 데이터 받기
https://fuckingjava.tistory.com/156
4. react에서 웹소켓 데이터 보내기
https://fuckingjava.tistory.com/157
5. Spring Boot에서 react에서 보낸 데이터 받고 재가공 후 보내기
https://fuckingjava.tistory.com/158