[Websocket] @MessageMapping 이란

박상준·2024년 4월 9일
0

WEBSOCKET

목록 보기
1/1
post-custom-banner
@MessageMapping("/chat/{chatroomId}/message")
public void sendMessage(@DestinationVariable(value = "chatroomId") Long chatroomId, @Valid ChatMessageRequestDTO chatMessage) {
    ...
}

개요

  • @MessageMapping 은 스프링 프레임워크의 일부로서, WebSocket 을 사용한 메시징 어플리케이션을 쉽게 구현할 수 있게 해주는 어노테이션이다.
  • WebSocket 은 클라이언트와 서버 간에 양방향 통신을 가능하게 하는 기술로서, 실시간 채팅 어플리케이션 같은 곳에서 많이 사용한다.

@MessageMapping

  • 특정 메시지가 도착한 경우 해당 메시지를 처리할 메서드를 지정할 때 사용한다고 한다.
    • 클라이언트가 서버로 메시지를 전송하면 → 그 메시지가 어떤 메서드에 의해 처리될지 결정하는 데 사용한다고 한다.

내부 동작 방식

  1. 클라이언트 → WebSocket 을 통하여 /chat/123/message 주소로 메시지를 보낸다.
  2. 서버에서 @MessageMapping 에 의하여 해당 주소로 오는 메시지는 sendMessage 메서드로 라우팅을 시도한다.
  3. sendMessage 가 호출되며, 메시지 내용이 처리된다.

DestinationVariable 은?

  • URL 에서 {chatroomId} 에 해당하는 부분을 추출해서 메서드의 파라미터로 전달한다.
  • 이를 통하여 어떤 채팅방에 메시지를 보내야할지를 알 수 있다.
profile
이전 블로그 : https://oth3410.tistory.com/
post-custom-banner

0개의 댓글