payload

Soobin Kim·2024년 11월 21일

공부

목록 보기
14/15

payload STOMP 메시징에서 payload(페이로드)는 실제로 주고받는 메시지의 내용물이다.

  • 서버로부터 실제로 받게 될 메시지 데이터
  • 어떤 형태로 받을지 지정하고(getPayloadType)
  • 받은 후 어떻게 처리할지 정의(handleFrame)하는 데 사용된다.

구독 자체에는 payload가 필요 없지만, 구독 후 메시지를 받았을 때 그 메시지(payload)를 어떻게 처리할지 정의하는 것이 필요하다.

  1. 메시지 타입 처리를 위해:
public Type getPayloadType(StompHeaders headers) {
    return String.class; // 어떤 타입으로 메시지를 받을지 지정
}
  • JSON 문자열로 받을지
  • 바이트 배열로 받을지
  • 커스텀 객체로 받을지 등을 지정한다.

  1. 실제 메시지 수신을 위해:
public void handleFrame(StompHeaders headers, Object payload) {
    String message = (String) payload;  // 실제 받은 메시지 내용
    // 여기서 메시지를 처리
}

예를 들어 채팅 애플리케이션이라면:

// 채팅 메시지 클래스
class ChatMessage {
    private String sender;
    private String content;
    // getters, setters...
}

// 구독 설정
session.subscribe("/topic/chat", new StompFrameHandler() {
    @Override
    public Type getPayloadType(StompHeaders headers) {
        return ChatMessage.class;  // ChatMessage 타입으로 받겠다
    }

    @Override
    public void handleFrame(StompHeaders headers, Object payload) {
        ChatMessage chatMessage = (ChatMessage) payload;
        System.out.println(chatMessage.getSender() + ": " + chatMessage.getContent());
    }
});

0개의 댓글