[Even 엔티티]
@Getter
public class Event {
private EventType eventType;
private Long roomId;
private Map<String, Object> data;
}
[EventType Enum]
public enum EventType {
ROOM_CREATE, ROOM_DELETE, ROOM_JOIN, ROOM_WITHDRAW, //가입, 탈퇴는 추후에 구현
CHANNEL_CREATE, CHANNEL_UPDATE, CHANNEL_DELETE,
LOUNGE_CREATE, LOUNGE_UPDATE, LOUNGE_DELETE
}
[StomConfig]
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/chat", "/room"); // chat, room 으로 시작되는 경로를 브로커의 타겟 경로로 설정
registry.setApplicationDestinationPrefixes("/app"); // app으로 시작되는 STOMP 메시지는 해당 클래스의 메서드로 라우팅
}
[StompController]
@MessageMapping("/room/info/send")
@SendTo
public void sendRoomInfo(Event event){
simpMessagingTemplate.convertAndSend("/room/info/" + event.getRoomId(), event);
}
⇒ 방 정보를 전달하기 위해서는 /app/room/info/send 로 보내주면 됨!
stompClient.current.send("/app/chat/send", {}, JSON.stringify(data));