public class WebSocket08FrameDecoder extends ReplayingDecoder<WebSocket08FrameDecoder.State> 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 int |
fragmentedFramesCount |
private boolean |
frameFinalFlag |
private int |
frameOpcode |
private ByteBuf |
framePayload |
private int |
framePayloadBytesRead |
private long |
framePayloadLength |
private int |
frameRsv |
private static InternalLogger |
logger |
private boolean |
maskedPayload |
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 ByteBuf |
payloadBuffer |
private boolean |
receivedClosingHandshake |
private Utf8Validator |
utf8Validator |
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
Constructor and Description |
---|
WebSocket08FrameDecoder(boolean maskedPayload,
boolean allowExtensions,
int maxFramePayloadLength)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
channelInactive(ChannelHandlerContext ctx)
Calls
ChannelHandlerContext.fireChannelInactive() to forward
to the next ChannelInboundHandler in the ChannelPipeline . |
protected void |
checkCloseFrameBody(ChannelHandlerContext ctx,
ByteBuf buffer) |
private void |
checkUTF8String(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) |
callDecode, checkpoint, checkpoint, state, state
actualReadableBytes, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
handlerAdded, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
channelActive, 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 int fragmentedFramesCount
private final long maxFramePayloadLength
private boolean frameFinalFlag
private int frameRsv
private int frameOpcode
private long framePayloadLength
private ByteBuf framePayload
private int framePayloadBytesRead
private byte[] maskingKey
private ByteBuf payloadBuffer
private final boolean allowExtensions
private final boolean maskedPayload
private boolean receivedClosingHandshake
private Utf8Validator utf8Validator
public WebSocket08FrameDecoder(boolean maskedPayload, boolean allowExtensions, int maxFramePayloadLength)
maskedPayload
- 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.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 accourprivate 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)
private void checkUTF8String(ChannelHandlerContext ctx, ByteBuf buffer)
protected void checkCloseFrameBody(ChannelHandlerContext ctx, ByteBuf buffer)
public void channelInactive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelInactive()
to forward
to the next ChannelInboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.channelInactive
in interface ChannelInboundHandler
channelInactive
in class ByteToMessageDecoder
java.lang.Exception