public class WebSocket08FrameDecoder extends ByteToMessageDecoder implements WebSocketFrameDecoder
Modifier and Type | Class and Description |
---|---|
(package private) static class |
WebSocket08FrameDecoder.State |
ByteToMessageDecoder.Cumulator
ChannelHandler.Sharable
Modifier and Type | Field and Description |
---|---|
private boolean |
allowExtensions |
private boolean |
allowMaskMismatch |
private boolean |
expectMaskedFrames |
private int |
fragmentedFramesCount |
private boolean |
frameFinalFlag |
private boolean |
frameMasked |
private int |
frameOpcode |
private int |
framePayloadLen1 |
private long |
framePayloadLength |
private int |
frameRsv |
private static InternalLogger |
logger |
private byte[] |
maskingKey |
private long |
maxFramePayloadLength |
private static byte |
OPCODE_BINARY |
private static byte |
OPCODE_CLOSE |
private static byte |
OPCODE_CONT |
private static byte |
OPCODE_PING |
private static byte |
OPCODE_PONG |
private static byte |
OPCODE_TEXT |
private boolean |
receivedClosingHandshake |
private WebSocket08FrameDecoder.State |
state |
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
Constructor and Description |
---|
WebSocket08FrameDecoder(boolean expectMaskedFrames,
boolean allowExtensions,
int maxFramePayloadLength)
Constructor
|
WebSocket08FrameDecoder(boolean expectMaskedFrames,
boolean allowExtensions,
int maxFramePayloadLength,
boolean allowMaskMismatch)
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected void |
checkCloseFrameBody(ChannelHandlerContext ctx,
ByteBuf buffer) |
protected void |
decode(ChannelHandlerContext ctx,
ByteBuf in,
java.util.List<java.lang.Object> out)
Decode the from one
ByteBuf to an other. |
private void |
protocolViolation(ChannelHandlerContext ctx,
CorruptedFrameException ex) |
private void |
protocolViolation(ChannelHandlerContext ctx,
java.lang.String reason) |
private static int |
toFrameLength(long l) |
private void |
unmask(ByteBuf frame) |
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
ensureNotSharable, handlerAdded, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
handlerAdded, handlerRemoved
private static final InternalLogger logger
private static final byte OPCODE_CONT
private static final byte OPCODE_TEXT
private static final byte OPCODE_BINARY
private static final byte OPCODE_CLOSE
private static final byte OPCODE_PING
private static final byte OPCODE_PONG
private final long maxFramePayloadLength
private final boolean allowExtensions
private final boolean expectMaskedFrames
private final boolean allowMaskMismatch
private int fragmentedFramesCount
private boolean frameFinalFlag
private boolean frameMasked
private int frameRsv
private int frameOpcode
private long framePayloadLength
private byte[] maskingKey
private int framePayloadLen1
private boolean receivedClosingHandshake
private WebSocket08FrameDecoder.State state
public WebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength)
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.public WebSocket08FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength, boolean allowMaskMismatch)
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.protected void decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out) throws java.lang.Exception
ByteToMessageDecoder
ByteBuf
to an other. This method will be called till either the input
ByteBuf
has nothing to read when return from this method or till nothing was read from the input
ByteBuf
.decode
in class ByteToMessageDecoder
ctx
- the ChannelHandlerContext
which this ByteToMessageDecoder
belongs toin
- the ByteBuf
from which to read dataout
- the List
to which decoded messages should be addedjava.lang.Exception
- is thrown if an error occursprivate void unmask(ByteBuf frame)
private void protocolViolation(ChannelHandlerContext ctx, java.lang.String reason)
private void protocolViolation(ChannelHandlerContext ctx, CorruptedFrameException ex)
private static int toFrameLength(long l)
protected void checkCloseFrameBody(ChannelHandlerContext ctx, ByteBuf buffer)