Class WebSocket08FrameDecoder
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder
- All Implemented Interfaces:
ChannelHandler,ChannelInboundHandler,WebSocketFrameDecoder
- Direct Known Subclasses:
WebSocket07FrameDecoder,WebSocket13FrameDecoder
Decodes a web socket frame from wire protocol version 8 format. This code was forked from webbit and modified.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.CumulatorNested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final WebSocketDecoderConfigprivate intprivate booleanprivate booleanprivate intprivate intprivate longprivate intprivate static final InternalLoggerprivate intprivate static final byteprivate static final byteprivate static final byteprivate static final byteprivate static final byteprivate static final byteprivate booleanprivate WebSocket08FrameDecoder.StateFields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR -
Constructor Summary
ConstructorsConstructorDescriptionWebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength) ConstructorWebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength, boolean allowMaskMismatch) ConstructorWebSocket08FrameDecoder(WebSocketDecoderConfig decoderConfig) Constructor -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckCloseFrameBody(ChannelHandlerContext ctx, ByteBuf buffer) protected voiddecode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) Decode the from oneByteBufto an other.private voidprivate voidprotocolViolation(ChannelHandlerContext ctx, ByteBuf in, WebSocketCloseStatus status, String reason) private voidprotocolViolation(ChannelHandlerContext ctx, ByteBuf in, String reason) private static inttoFrameLength(long l) private voidMethods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughtMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemovedMethods inherited from interface io.netty.channel.ChannelInboundHandler
channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Field Details
-
logger
-
OPCODE_CONT
private static final byte OPCODE_CONT- See Also:
-
OPCODE_TEXT
private static final byte OPCODE_TEXT- See Also:
-
OPCODE_BINARY
private static final byte OPCODE_BINARY- See Also:
-
OPCODE_CLOSE
private static final byte OPCODE_CLOSE- See Also:
-
OPCODE_PING
private static final byte OPCODE_PING- See Also:
-
OPCODE_PONG
private static final byte OPCODE_PONG- See Also:
-
config
-
fragmentedFramesCount
private int fragmentedFramesCount -
frameFinalFlag
private boolean frameFinalFlag -
frameMasked
private boolean frameMasked -
frameRsv
private int frameRsv -
frameOpcode
private int frameOpcode -
framePayloadLength
private long framePayloadLength -
mask
private int mask -
framePayloadLen1
private int framePayloadLen1 -
receivedClosingHandshake
private boolean receivedClosingHandshake -
state
-
-
Constructor Details
-
WebSocket08FrameDecoder
public WebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength) Constructor- Parameters:
expectMaskedFrames- Web socket servers must set this to true processed incoming masked payload. Client implementations must set this to false.allowExtensions- Flag to allow reserved extension bits to be used or notmaxFramePayloadLength- Maximum length of a frame's payload. Setting this to an appropriate value for you application helps check for denial of services attacks.
-
WebSocket08FrameDecoder
public WebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength, boolean allowMaskMismatch) Constructor- Parameters:
expectMaskedFrames- Web socket servers must set this to true processed incoming masked payload. Client implementations must set this to false.allowExtensions- Flag to allow reserved extension bits to be used or notmaxFramePayloadLength- Maximum length of a frame's payload. Setting this to an appropriate value for you application helps check for denial of services attacks.allowMaskMismatch- When set to true, frames which are not masked properly according to the standard will still be accepted.
-
WebSocket08FrameDecoder
Constructor- Parameters:
decoderConfig- Frames decoder configuration.
-
-
Method Details
-
decode
Description copied from class:ByteToMessageDecoderDecode the from oneByteBufto an other. This method will be called till either the inputByteBufhas nothing to read when return from this method or till nothing was read from the inputByteBuf.- Specified by:
decodein classByteToMessageDecoder- Parameters:
ctx- theChannelHandlerContextwhich thisByteToMessageDecoderbelongs toin- theByteBuffrom which to read dataout- theListto which decoded messages should be added- Throws:
Exception- is thrown if an error occurs
-
unmask
-
protocolViolation
-
protocolViolation
private void protocolViolation(ChannelHandlerContext ctx, ByteBuf in, WebSocketCloseStatus status, String reason) -
protocolViolation
private void protocolViolation(ChannelHandlerContext ctx, ByteBuf in, CorruptedWebSocketFrameException ex) -
toFrameLength
private static int toFrameLength(long l) -
checkCloseFrameBody
-