- java.lang.Object
-
- io.netty5.handler.codec.http2.Http2ServerUpgradeCodec
-
- All Implemented Interfaces:
HttpServerUpgradeHandler.UpgradeCodec
@UnstableApi public class Http2ServerUpgradeCodec extends Object implements HttpServerUpgradeHandler.UpgradeCodec
Server-side codec for performing a cleartext upgrade from HTTP/1.x to HTTP/2.
-
-
Constructor Summary
Constructors Constructor Description Http2ServerUpgradeCodec(Http2ConnectionHandler connectionHandler)
Creates the codec using a default name for the connection handler when adding to the pipeline.Http2ServerUpgradeCodec(Http2FrameCodec http2Codec, ChannelHandler... handlers)
Creates the codec using a default name for the connection handler when adding to the pipeline.Http2ServerUpgradeCodec(String handlerName, Http2ConnectionHandler connectionHandler)
Creates the codec providing an upgrade to the given handler for HTTP/2.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
prepareUpgradeResponse(ChannelHandlerContext ctx, FullHttpRequest upgradeRequest, HttpHeaders headers)
Prepares theupgradeHeaders
for a protocol update based upon the contents ofupgradeRequest
.Collection<CharSequence>
requiredUpgradeHeaders()
Gets all protocol-specific headers required by this protocol for a successful upgrade.void
upgradeTo(ChannelHandlerContext ctx, FullHttpRequest upgradeRequest)
Performs an HTTP protocol upgrade from the source codec.
-
-
-
Constructor Detail
-
Http2ServerUpgradeCodec
public Http2ServerUpgradeCodec(Http2ConnectionHandler connectionHandler)
Creates the codec using a default name for the connection handler when adding to the pipeline.- Parameters:
connectionHandler
- the HTTP/2 connection handler
-
Http2ServerUpgradeCodec
public Http2ServerUpgradeCodec(String handlerName, Http2ConnectionHandler connectionHandler)
Creates the codec providing an upgrade to the given handler for HTTP/2.- Parameters:
handlerName
- the name of the HTTP/2 connection handler to be used in the pipeline, ornull
to auto-generate the nameconnectionHandler
- the HTTP/2 connection handler
-
Http2ServerUpgradeCodec
public Http2ServerUpgradeCodec(Http2FrameCodec http2Codec, ChannelHandler... handlers)
Creates the codec using a default name for the connection handler when adding to the pipeline.- Parameters:
http2Codec
- the HTTP/2 frame handler.handlers
- the handlers that will handle theHttp2Frame
s.
-
-
Method Detail
-
requiredUpgradeHeaders
public Collection<CharSequence> requiredUpgradeHeaders()
Description copied from interface:HttpServerUpgradeHandler.UpgradeCodec
Gets all protocol-specific headers required by this protocol for a successful upgrade. Any supplied header will be required to appear in theHttpHeaderNames.CONNECTION
header as well.- Specified by:
requiredUpgradeHeaders
in interfaceHttpServerUpgradeHandler.UpgradeCodec
-
prepareUpgradeResponse
public boolean prepareUpgradeResponse(ChannelHandlerContext ctx, FullHttpRequest upgradeRequest, HttpHeaders headers)
Description copied from interface:HttpServerUpgradeHandler.UpgradeCodec
Prepares theupgradeHeaders
for a protocol update based upon the contents ofupgradeRequest
. This method returns a boolean value to proceed or abort the upgrade in progress. Iffalse
is returned, the upgrade is aborted and theupgradeRequest
will be passed through the inbound pipeline as if no upgrade was performed. Iftrue
is returned, the upgrade will proceed to the next step which invokesHttpServerUpgradeHandler.UpgradeCodec.upgradeTo(io.netty5.channel.ChannelHandlerContext, io.netty5.handler.codec.http.FullHttpRequest)
. When returningtrue
, you can add headers to theupgradeHeaders
so that they are added to the 101 Switching protocols response.- Specified by:
prepareUpgradeResponse
in interfaceHttpServerUpgradeHandler.UpgradeCodec
-
upgradeTo
public void upgradeTo(ChannelHandlerContext ctx, FullHttpRequest upgradeRequest)
Description copied from interface:HttpServerUpgradeHandler.UpgradeCodec
Performs an HTTP protocol upgrade from the source codec. This method is responsible for adding all handlers required for the new protocol.- Specified by:
upgradeTo
in interfaceHttpServerUpgradeHandler.UpgradeCodec
- Parameters:
ctx
- the context for the current handler.upgradeRequest
- the request that triggered the upgrade to this protocol.
-
-