본문 바로가기
Java/Spring

Spring) Web-Socket - Stomp (게시글 조회 알림 구현)

by 박채니 2022. 9. 15.
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.

 

게시글 조회 알림

 

Controller

BoardController

public class BoardController {

	@Autowired
	NoticeService noticeService;
    
    @GetMapping("/boardDetail.do")
	public void boardDetail(@RequestParam int no, Model model) {
		Board board = boardService.selectOneBoard(no);
		log.debug("board = {}", board);
		noticeService.sendNotice(board);
		model.addAttribute("board", board);
	}
}

boardDetail 메소드가 실행되면 noticeService의 sendNotice를 통해 게시글 조회 알림 처리를 해보겠습니다.

 

Service

NoticeService

SimpMessagingTemplate.convertAndSend() 

@Service
public class NoticeService {
	
	@Autowired
	SimpMessagingTemplate simpMessagingTemplate;
	
	public void sendNotice(Board board) {
		Payload payload = Payload.builder()
                            .to(board.getMemberId()) // 글쓴이
                            .msg("[" + board.getTitle() + "] 게시글을 누군가 조회했어요!😎")
                            .time(System.currentTimeMillis())
                            .build();
		simpMessagingTemplate.convertAndSend("/app/notice/" + board.getMemberId(), payload); // 해당 url에 payload를 전달!
	}

}

honggd가 로그인하여 qwerty 게시글을 조회했더니, qwerty에게 알림이 가는 것을 확인할 수 있습니다.

추후 DB 저장 등을 이용하여 알림 리스트를 만들고 실시간 처리를 할 수 있을 것 같습니다.

 

위와 같은 방식으로 댓글이 달렸을 때의 알림 등등을 처리할 수 있겠죠!!