@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))); }