pub/sub 기반으로 동작하는 메시징 프로토콜
메시지 송신자와 수시잔가 명확하게 분리된 방식으로 메시지를 주고받을 수 있습니다.
메시지 발행(Publish)과 구독(Subscribe)으로 구성된다.
/topic/chatRoom1에 입장하고 구독/app/chatRoom1으로 메시지를 발행@EnableWebSocketMessageBroker를 사용하여 WebSocket 메시징을 활성화하고, STOMP 프로토콜을 설정합니다.@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
@Override
public void configureMessageBroker(MessageBrokerRegistry config){
config.enableSimpleBroker("/topic"); // 메시지 발송 대기
config.setApplicationDestinationPrefixes("/app); // 클라이언트 요청의 prefix
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry){
registry.addEndpoint("/ws").withSockJs(); // WebSocket 엔드포인트 설정
}
}
@Controller
public class ChatController {
@MessageMapping("/chatRoom1")
@SendTo("/topic/chatRoom1")
public ChatMessage sendMessage(ChatMessage message){
return message; // 채팅 메시지를 발송
}
}