
	                	                 
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