Example usage for org.springframework.web.socket.sockjs.client Transport getTransportTypes

List of usage examples for org.springframework.web.socket.sockjs.client Transport getTransportTypes

Introduction

In this page you can find the example usage for org.springframework.web.socket.sockjs.client Transport getTransportTypes.

Prototype

List<TransportType> getTransportTypes();

Source Link

Document

Return the SockJS transport types that this transport can be used for.

Usage

From source file:org.springframework.web.socket.sockjs.client.SockJsClient.java

private DefaultTransportRequest createRequest(SockJsUrlInfo urlInfo, @Nullable HttpHeaders headers,
        ServerInfo serverInfo) {/*  ww w.  j  a v a 2 s. c o m*/

    List<DefaultTransportRequest> requests = new ArrayList<>(this.transports.size());
    for (Transport transport : this.transports) {
        for (TransportType type : transport.getTransportTypes()) {
            if (serverInfo.isWebSocketEnabled() || !TransportType.WEBSOCKET.equals(type)) {
                requests.add(new DefaultTransportRequest(urlInfo, headers, getHttpRequestHeaders(headers),
                        transport, type, getMessageCodec()));
            }
        }
    }
    if (CollectionUtils.isEmpty(requests)) {
        throw new IllegalStateException(
                "No transports: " + urlInfo + ", webSocketEnabled=" + serverInfo.isWebSocketEnabled());
    }
    for (int i = 0; i < requests.size() - 1; i++) {
        DefaultTransportRequest request = requests.get(i);
        Principal user = getUser();
        if (user != null) {
            request.setUser(user);
        }
        if (this.connectTimeoutScheduler != null) {
            request.setTimeoutValue(serverInfo.getRetransmissionTimeout());
            request.setTimeoutScheduler(this.connectTimeoutScheduler);
        }
        request.setFallbackRequest(requests.get(i + 1));
    }
    return requests.get(0);
}