Search in sources :

Example 1 with ReactorServerHttpResponse

use of org.springframework.http.server.reactive.ReactorServerHttpResponse in project spring-framework by spring-projects.

the class ReactorNettyRequestUpgradeStrategy method upgrade.

@Override
public Mono<Void> upgrade(ServerWebExchange exchange, WebSocketHandler handler, Optional<String> subProtocol) {
    ReactorServerHttpResponse response = (ReactorServerHttpResponse) exchange.getResponse();
    HandshakeInfo info = getHandshakeInfo(exchange, subProtocol);
    NettyDataBufferFactory bufferFactory = (NettyDataBufferFactory) response.bufferFactory();
    return response.getReactorResponse().sendWebsocket(subProtocol.orElse(null), (in, out) -> handler.handle(new ReactorNettyWebSocketSession(in, out, info, bufferFactory)));
}
Also used : ReactorNettyWebSocketSession(org.springframework.web.reactive.socket.adapter.ReactorNettyWebSocketSession) ReactorServerHttpResponse(org.springframework.http.server.reactive.ReactorServerHttpResponse) NettyDataBufferFactory(org.springframework.core.io.buffer.NettyDataBufferFactory) HandshakeInfo(org.springframework.web.reactive.socket.HandshakeInfo)

Aggregations

NettyDataBufferFactory (org.springframework.core.io.buffer.NettyDataBufferFactory)1 ReactorServerHttpResponse (org.springframework.http.server.reactive.ReactorServerHttpResponse)1 HandshakeInfo (org.springframework.web.reactive.socket.HandshakeInfo)1 ReactorNettyWebSocketSession (org.springframework.web.reactive.socket.adapter.ReactorNettyWebSocketSession)1