Example usage for org.springframework.web.socket.sockjs.transport TransportType WEBSOCKET

List of usage examples for org.springframework.web.socket.sockjs.transport TransportType WEBSOCKET

Introduction

In this page you can find the example usage for org.springframework.web.socket.sockjs.transport TransportType WEBSOCKET.

Prototype

TransportType WEBSOCKET

To view the source code for org.springframework.web.socket.sockjs.transport TransportType WEBSOCKET.

Click Source Link

Usage

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

private DefaultTransportRequest createRequest(SockJsUrlInfo urlInfo, @Nullable HttpHeaders headers,
        ServerInfo serverInfo) {//from  w  ww. j a v a 2  s. co  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);
}

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

@Override
public List<TransportType> getTransportTypes() {
    return Collections.singletonList(TransportType.WEBSOCKET);
}

From source file:org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService.java

@Override
protected void handleRawWebSocketRequest(ServerHttpRequest request, ServerHttpResponse response,
        WebSocketHandler handler) throws IOException {

    TransportHandler transportHandler = this.handlers.get(TransportType.WEBSOCKET);
    if (!(transportHandler instanceof HandshakeHandler)) {
        logger.error("No handler configured for raw WebSocket messages");
        response.setStatusCode(HttpStatus.NOT_FOUND);
        return;/*from w  ww .  jav a  2  s .c  o m*/
    }

    HandshakeInterceptorChain chain = new HandshakeInterceptorChain(this.interceptors, handler);
    HandshakeFailureException failure = null;

    try {
        Map<String, Object> attributes = new HashMap<String, Object>();
        if (!chain.applyBeforeHandshake(request, response, attributes)) {
            return;
        }
        ((HandshakeHandler) transportHandler).doHandshake(request, response, handler, attributes);
        chain.applyAfterHandshake(request, response, null);
    } catch (HandshakeFailureException ex) {
        failure = ex;
    } catch (Throwable ex) {
        failure = new HandshakeFailureException("Uncaught failure for request " + request.getURI(), ex);
    } finally {
        if (failure != null) {
            chain.applyAfterHandshake(request, response, failure);
            throw failure;
        }
    }
}