Package io.netty.handler.codec.http
Class HttpServerUpgradeHandler
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.MessageToMessageDecoder<I>
-
- io.netty.handler.codec.MessageAggregator<HttpObject,HttpMessage,HttpContent,FullHttpMessage>
-
- io.netty.handler.codec.http.HttpObjectAggregator
-
- io.netty.handler.codec.http.HttpServerUpgradeHandler
-
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
public class HttpServerUpgradeHandler extends HttpObjectAggregator
A server-side handler that receives HTTP requests and optionally performs a protocol switch if the requested protocol is supported. Once an upgrade is performed, this handler removes itself from the pipeline.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
HttpServerUpgradeHandler.SourceCodec
The source codec that is used in the pipeline initially.static interface
HttpServerUpgradeHandler.UpgradeCodec
A codec that the source can be upgraded to.static interface
HttpServerUpgradeHandler.UpgradeCodecFactory
Creates a newHttpServerUpgradeHandler.UpgradeCodec
for the requested protocol name.static class
HttpServerUpgradeHandler.UpgradeEvent
User event that is fired to notify about the completion of an HTTP upgrade to another protocol.-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Constructor Summary
Constructors Constructor Description HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory)
Constructs the upgrader with the supported codecs.HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory, int maxContentLength)
Constructs the upgrader with the supported codecs.HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory, int maxContentLength, boolean validateHeaders)
Constructs the upgrader with the supported codecs.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
decode(ChannelHandlerContext ctx, HttpObject msg, List<Object> out)
Decode from one message to an other.-
Methods inherited from class io.netty.handler.codec.http.HttpObjectAggregator
aggregate, beginAggregation, closeAfterContinueResponse, finishAggregation, handleOversizedMessage, ignoreContentAfterContinueResponse, isAggregated, isContentLengthInvalid, isContentMessage, isLastContentMessage, isStartMessage, newContinueResponse
-
Methods inherited from class io.netty.handler.codec.MessageAggregator
acceptInboundMessage, channelInactive, channelReadComplete, ctx, handlerAdded, handlerRemoved, isHandlingOversizedMessage, maxContentLength, maxCumulationBufferComponents, setMaxCumulationBufferComponents
-
Methods inherited from class io.netty.handler.codec.MessageToMessageDecoder
channelRead
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, isSharable
-
-
-
-
Constructor Detail
-
HttpServerUpgradeHandler
public HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory)
Constructs the upgrader with the supported codecs.The handler instantiated by this constructor will reject an upgrade request with non-empty content. It should not be a concern because an upgrade request is most likely a GET request. If you have a client that sends a non-GET upgrade request, please consider using
HttpServerUpgradeHandler(SourceCodec, UpgradeCodecFactory, int)
to specify the maximum length of the content of an upgrade request.- Parameters:
sourceCodec
- the codec that is being used initiallyupgradeCodecFactory
- the factory that creates a new upgrade codec for one of the requested upgrade protocols
-
HttpServerUpgradeHandler
public HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory, int maxContentLength)
Constructs the upgrader with the supported codecs.- Parameters:
sourceCodec
- the codec that is being used initiallyupgradeCodecFactory
- the factory that creates a new upgrade codec for one of the requested upgrade protocolsmaxContentLength
- the maximum length of the content of an upgrade request
-
HttpServerUpgradeHandler
public HttpServerUpgradeHandler(HttpServerUpgradeHandler.SourceCodec sourceCodec, HttpServerUpgradeHandler.UpgradeCodecFactory upgradeCodecFactory, int maxContentLength, boolean validateHeaders)
Constructs the upgrader with the supported codecs.- Parameters:
sourceCodec
- the codec that is being used initiallyupgradeCodecFactory
- the factory that creates a new upgrade codec for one of the requested upgrade protocolsmaxContentLength
- the maximum length of the content of an upgrade requestvalidateHeaders
- validate the header names and values of the upgrade response.
-
-
Method Detail
-
decode
protected void decode(ChannelHandlerContext ctx, HttpObject msg, List<Object> out) throws Exception
Description copied from class:MessageToMessageDecoder
Decode from one message to an other. This method will be called for each written message that can be handled by this decoder.- Overrides:
decode
in classMessageAggregator<HttpObject,HttpMessage,HttpContent,FullHttpMessage>
- Parameters:
ctx
- theChannelHandlerContext
which thisMessageToMessageDecoder
belongs tomsg
- the message to decode to an other oneout
- theList
to which decoded messages should be added- Throws:
Exception
- is thrown if an error occurs
-
-