Class ReactorNettyRequestUpgradeStrategy
- java.lang.Object
- org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy
- All Implemented Interfaces:
RequestUpgradeStrategy
public class ReactorNettyRequestUpgradeStrategy extends Object implements RequestUpgradeStrategy
ARequestUpgradeStrategy
for use with Reactor Netty.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description ReactorNettyRequestUpgradeStrategy()
Create an instances with a defaultWebsocketServerSpec.Builder
.ReactorNettyRequestUpgradeStrategy(Supplier<reactor.netty.http.server.WebsocketServerSpec.Builder> builderSupplier)
Create an instance with a pre-configuredWebsocketServerSpec.Builder
to use for WebSocket upgrades.
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
getHandlePing()
Deprecated.as of 5.2.6 in favor ofgetWebsocketServerSpec()
int
getMaxFramePayloadLength()
Deprecated.as of 5.2.6 in favor ofgetWebsocketServerSpec()
reactor.netty.http.server.WebsocketServerSpec
getWebsocketServerSpec()
Build an instance ofWebsocketServerSpec
that reflects the current configuration.void
setHandlePing(boolean handlePing)
Deprecated.as of 5.2.6 in favor of providing a supplier ofWebsocketServerSpec.Builder
wiht a constructor argument.void
setMaxFramePayloadLength(Integer maxFramePayloadLength)
Deprecated.as of 5.2.6 in favor of providing a supplier ofWebsocketServerSpec.Builder
wiht a constructor argument.reactor.core.publisher.Mono<Void>
upgrade(ServerWebExchange exchange, WebSocketHandler handler, String subProtocol, Supplier<HandshakeInfo> handshakeInfoFactory)
Upgrade to a WebSocket session and handle it with the given handler.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.reactive.socket.server.RequestUpgradeStrategy
upgrade
Constructor Detail
ReactorNettyRequestUpgradeStrategy
public ReactorNettyRequestUpgradeStrategy()
Create an instances with a defaultWebsocketServerSpec.Builder
.- Since:
- 5.2.6
ReactorNettyRequestUpgradeStrategy
public ReactorNettyRequestUpgradeStrategy(Supplier<reactor.netty.http.server.WebsocketServerSpec.Builder> builderSupplier)
Create an instance with a pre-configuredWebsocketServerSpec.Builder
to use for WebSocket upgrades.- Since:
- 5.2.6
Method Detail
getWebsocketServerSpec
public reactor.netty.http.server.WebsocketServerSpec getWebsocketServerSpec()
Build an instance ofWebsocketServerSpec
that reflects the current configuration. This can be used to check the configured parameters except for sub-protocols which depend on theWebSocketHandler
that is used for a given upgrade.- Since:
- 5.2.6
setMaxFramePayloadLength
@Deprecated public void setMaxFramePayloadLength(Integer maxFramePayloadLength)
Deprecated.as of 5.2.6 in favor of providing a supplier ofWebsocketServerSpec.Builder
wiht a constructor argument.Configure the maximum allowable frame payload length. Setting this value to your application's requirement may reduce denial of service attacks using long data frames.Corresponds to the argument with the same name in the constructor of
WebSocketServerHandshakerFactory
in Netty.By default set to 65536 (64K).
- Parameters:
maxFramePayloadLength
- the max length for frames.- Since:
- 5.1
getMaxFramePayloadLength
@Deprecated public int getMaxFramePayloadLength()
Deprecated.as of 5.2.6 in favor ofgetWebsocketServerSpec()
Return the configured max length for frames.- Since:
- 5.1
setHandlePing
@Deprecated public void setHandlePing(boolean handlePing)
Deprecated.as of 5.2.6 in favor of providing a supplier ofWebsocketServerSpec.Builder
wiht a constructor argument.Configure whether to let ping frames through to be handled by theWebSocketHandler
given to the upgrade method. By default, Reactor Netty automatically replies with pong frames in response to pings. This is useful in a proxy for allowing ping and pong frames through.By default this is set to
false
in which case ping frames are handled automatically by Reactor Netty. If set totrue
, ping frames will be passed through to theWebSocketHandler
.- Parameters:
handlePing
- whether to let Ping frames through for handling- Since:
- 5.2.4
getHandlePing
@Deprecated public boolean getHandlePing()
Deprecated.as of 5.2.6 in favor ofgetWebsocketServerSpec()
Return the configuredsetHandlePing(boolean)
.- Since:
- 5.2.4
upgrade
public reactor.core.publisher.Mono<Void> upgrade(ServerWebExchange exchange, WebSocketHandler handler, @Nullable String subProtocol, Supplier<HandshakeInfo> handshakeInfoFactory)
Description copied from interface:RequestUpgradeStrategy
Upgrade to a WebSocket session and handle it with the given handler.- Specified by:
upgrade
in interfaceRequestUpgradeStrategy
- Parameters:
exchange
- the current exchangehandler
- handler for the WebSocket sessionsubProtocol
- the selected sub-protocol got the handlerhandshakeInfoFactory
- factory to create HandshakeInfo for the WebSocket session- Returns:
- completion
Mono<Void>
to indicate the outcome of the WebSocket session handling.