개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.03 14:46

Stomp::getReadTimeout 관련 질문

목록
  • CI/CD장인 2일 전 2025.06.03 14:46
  • 2
    1
저는 Stomp 프레임워크를 사용하여 메시지 브로커와 통신 중인데, getReadTimeout() 메서드에 대한 이해가 부족합니다.

getReadTimeout() 메서드는 무엇을 위한 메서드인지 정확히 모르겠습니다.

getReadTimeout() 메서드는 어떤 상황에서 사용하는지 알려주세요.

그리고, getReadTimeout() 메서드의 기본값은 무엇인지 알려주세요.

또한, getReadTimeout() 메서드를 사용하여 예제 코드를 작성해주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    Stomp 프레임워크의 getReadTimeout() 메서드는 메시지 브로커와의 연결에서 읽기 타임아웃을 설정하는 메서드입니다.

    이 메서드는 연결이 끊어질 때까지 기다리는 시간을 설정하는 데 사용됩니다.

    기본값은 0으로, 즉 타임아웃이 설정되지 않은 상태입니다.

    getReadTimeout() 메서드를 사용하여 예제 코드를 작성해 보겠습니다.

    #hostingforum.kr
    java
    
    import org.springframework.messaging.Message;
    
    import org.springframework.messaging.MessageHeaders;
    
    import org.springframework.messaging.converter.MessageConverter;
    
    import org.springframework.messaging.converter.MappingJackson2MessageConverter;
    
    import org.springframework.messaging.simp.stomp.StompFrame;
    
    import org.springframework.messaging.simp.stomp.StompHeaders;
    
    import org.springframework.messaging.simp.stomp.StompSession;
    
    import org.springframework.messaging.simp.stomp.StompSessionHandlerAdapter;
    
    import org.springframework.messaging.support.MessageBuilder;
    
    import org.springframework.web.socket.client.standard.StandardWebSocketClient;
    
    import org.springframework.web.socket.messaging.WebSocketStompClient;
    
    import org.springframework.web.socket.sockjs.client.SockJsClient;
    
    import org.springframework.web.socket.sockjs.client.Transport;
    
    import org.springframework.web.socket.sockjs.client.WebSocketTransport;
    
    
    
    import java.util.Collections;
    
    import java.util.List;
    
    
    
    public class StompClient {
    
    
    
        public static void main(String[] args) {
    
            WebSocketStompClient stompClient = new WebSocketStompClient(new SockJsClient(Collections.singleton(new WebSocketTransport(new StandardWebSocketClient()))));
    
            stompClient.setMessageConverter(new MappingJackson2MessageConverter());
    
    
    
            StompHeaders headers = new StompHeaders();
    
            headers.setDestination("/topic/greeting");
    
    
    
            StompSession session = stompClient.connect("ws://localhost:8080/greeting", new StompSessionHandlerAdapter() {
    
                @Override
    
                public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
    
                    session.send(MessageBuilder.createMessage("Hello, World!", headers).build());
    
                }
    
            }).get();
    
    
    
            // getReadTimeout() 메서드를 사용하여 읽기 타임아웃을 설정합니다.
    
            session.getReadTimeout().setTimeout(1000); // 1초의 타임아웃을 설정합니다.
    
    
    
            // 메시지를 받을 때까지 기다립니다.
    
            try {
    
                Message<?> message = session.receive();
    
                System.out.println(message.getPayload());
    
            } catch (Exception e) {
    
                System.out.println("타임아웃 발생");
    
            }
    
        }
    
    }
    
    


    이 예제 코드에서는 getReadTimeout() 메서드를 사용하여 읽기 타임아웃을 1초로 설정한 후 메시지를 받을 때까지 기다립니다. 만약 타임아웃이 발생하면 "타임아웃 발생"이 출력됩니다.

    2025-06-03 14:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,365건 / 7 페이지

검색

게시물 검색