Example usage for org.springframework.web.reactive.socket HandshakeInfo getHeaders

List of usage examples for org.springframework.web.reactive.socket HandshakeInfo getHeaders

Introduction

In this page you can find the example usage for org.springframework.web.reactive.socket HandshakeInfo getHeaders.

Prototype

public HttpHeaders getHeaders() 

Source Link

Document

Return the handshake HTTP headers.

Usage

From source file:org.springframework.cloud.gateway.test.websocket.WebSocketIntegrationTests.java

@Test
public void subProtocol() throws Exception {
    String protocol = "echo-v1";
    String protocol2 = "echo-v2";
    AtomicReference<HandshakeInfo> infoRef = new AtomicReference<>();
    MonoProcessor<Object> output = MonoProcessor.create();

    client.execute(getUrl("/sub-protocol"), new WebSocketHandler() {
        @Override//from  www .  ja va 2 s.c  o  m
        public List<String> getSubProtocols() {
            return Arrays.asList(protocol, protocol2);
        }

        @Override
        public Mono<Void> handle(WebSocketSession session) {
            infoRef.set(session.getHandshakeInfo());
            return session.receive().map(WebSocketMessage::getPayloadAsText).subscribeWith(output).then();
        }
    }).block(Duration.ofMillis(5000));

    HandshakeInfo info = infoRef.get();
    assertThat(info.getHeaders().getFirst("Upgrade")).isEqualToIgnoringCase("websocket");

    assertThat(info.getHeaders().getFirst("Sec-WebSocket-Protocol")).isEqualTo(protocol);
    assertThat(info.getSubProtocol()).as("Wrong protocol accepted").isEqualTo(protocol);
    assertThat(output.block(Duration.ofSeconds(5))).as("Wrong protocol detected on the server side")
            .isEqualTo(protocol);
}

From source file:org.springframework.web.reactive.socket.WebSocketIntegrationTests.java

@Test
public void subProtocol() throws Exception {
    String protocol = "echo-v1";
    AtomicReference<HandshakeInfo> infoRef = new AtomicReference<>();
    MonoProcessor<Object> output = MonoProcessor.create();

    this.client.execute(getUrl("/sub-protocol"), new WebSocketHandler() {
        @Override//from w ww.jav  a  2 s. com
        public List<String> getSubProtocols() {
            return Collections.singletonList(protocol);
        }

        @Override
        public Mono<Void> handle(WebSocketSession session) {
            infoRef.set(session.getHandshakeInfo());
            return session.receive().map(WebSocketMessage::getPayloadAsText).subscribeWith(output).then();
        }
    }).block(Duration.ofMillis(5000));

    HandshakeInfo info = infoRef.get();
    assertThat(info.getHeaders().getFirst("Upgrade"), Matchers.equalToIgnoringCase("websocket"));
    assertEquals(protocol, info.getHeaders().getFirst("Sec-WebSocket-Protocol"));
    assertEquals("Wrong protocol accepted", protocol, info.getSubProtocol());
    assertEquals("Wrong protocol detected on the server side", protocol, output.block(Duration.ofMillis(5000)));
}