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.Cumulator
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final WebSocketDecoderConfig
private int
private boolean
private boolean
private int
private int
private long
private int
private static final InternalLogger
private int
private static final byte
private static final byte
private static final byte
private static final byte
private static final byte
private static final byte
private boolean
private WebSocket08FrameDecoder.State
Fields 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 void
checkCloseFrameBody
(ChannelHandlerContext ctx, ByteBuf buffer) protected void
decode
(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) Decode the from oneByteBuf
to an other.private void
private void
protocolViolation
(ChannelHandlerContext ctx, ByteBuf in, WebSocketCloseStatus status, String reason) private void
protocolViolation
(ChannelHandlerContext ctx, ByteBuf in, String reason) private static int
toFrameLength
(long l) private void
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
Methods 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:ByteToMessageDecoder
Decode the from oneByteBuf
to an other. This method will be called till either the inputByteBuf
has nothing to read when return from this method or till nothing was read from the inputByteBuf
.- Specified by:
decode
in classByteToMessageDecoder
- Parameters:
ctx
- theChannelHandlerContext
which thisByteToMessageDecoder
belongs toin
- theByteBuf
from which to read dataout
- theList
to 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
-