1
Websocket "wss : //echo.websocket.org"에 대한 클라이언트를 빌드하려고합니다. 코드는 ReactorNettyWebSocketClient()와 함께 Spring 5를 사용합니다.스프링 웹 소켓 클라이언트 리액터 시간 초과
public class WsClient {
public static void main(String[] args) throws InterruptedException {
WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(URI.create("wss://echo.websocket.org"),
new ClientWebSocketHandler()).block(Duration.ofSeconds(15));
System.out.println("End");
}
static class ClientWebSocketHandler implements WebSocketHandler {
@Override
public Mono<Void> handle(WebSocketSession session) {
WebSocketMessage textMessage = session.textMessage("{\"event\":\"ping\"}");
session.send(Mono.just(textMessage));
String payloadAsText = session.receive().blockFirst().getPayloadAsText();
System.out.println(payloadAsText);
return Mono.empty();
}
}
}
코드가 15 초 후에 시간 초과됩니다. 그것은 핑 메시지를 보내야하고 나는 핑 메시지를 다시 기대할 것입니다. https://stackify.com/reactive-spring-5/
: 그것은 기반으로public class WsClient {
public static void main(String[] args) throws InterruptedException {
WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(URI.create("wss://echo.websocket.org"),
session -> session.send(Mono.just(
session.textMessage("{\"event\":\"ping\"}")))
.thenMany(session
.receive()
.map(WebSocketMessage::getPayloadAsText)
.log())
.then()).block(Duration.ofSeconds(10));
System.out.println("End");
}
}
: