Example usage for org.springframework.web.reactive.socket.adapter ReactorNettyWebSocketSession ReactorNettyWebSocketSession

List of usage examples for org.springframework.web.reactive.socket.adapter ReactorNettyWebSocketSession ReactorNettyWebSocketSession

Introduction

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

Prototype

public ReactorNettyWebSocketSession(WebsocketInbound inbound, WebsocketOutbound outbound, HandshakeInfo info,
        NettyDataBufferFactory bufferFactory) 

Source Link

Document

Constructor for the session, using the #DEFAULT_FRAME_MAX_SIZE value.

Usage

From source file:org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient.java

@Override
public Mono<Void> execute(URI url, HttpHeaders requestHeaders, WebSocketHandler handler) {
    return getHttpClient().headers(nettyHeaders -> setNettyHeaders(requestHeaders, nettyHeaders))
            .websocket(StringUtils.collectionToCommaDelimitedString(handler.getSubProtocols()))
            .uri(url.toString()).handle((inbound, outbound) -> {
                HttpHeaders responseHeaders = toHttpHeaders(inbound);
                String protocol = responseHeaders.getFirst("Sec-WebSocket-Protocol");
                HandshakeInfo info = new HandshakeInfo(url, responseHeaders, Mono.empty(), protocol);
                NettyDataBufferFactory factory = new NettyDataBufferFactory(outbound.alloc());
                WebSocketSession session = new ReactorNettyWebSocketSession(inbound, outbound, info, factory);
                if (logger.isDebugEnabled()) {
                    logger.debug("Started session '" + session.getId() + "' for " + url);
                }/*  w w  w  .ja  v  a2s. c  om*/
                return handler.handle(session);
            }).doOnRequest(n -> {
                if (logger.isDebugEnabled()) {
                    logger.debug("Connecting to " + url);
                }
            }).next();
}