public class WebSocket08FrameDecoder extends ReplayingDecoder<WebSocket08FrameDecoder.State> implements WebSocketFrameDecoder
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
WebSocket08FrameDecoder.State |
ByteToMessageDecoder.CumulatorChannelHandler.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, stateactualReadableBytes, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredchannelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughthandlerAdded, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitchannelActive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredhandlerAdded, handlerRemovedprivate 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
ByteToMessageDecoderByteBuf 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 ByteToMessageDecoderctx - 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
ChannelInboundHandlerAdapterChannelHandlerContext.fireChannelInactive() to forward
to the next ChannelInboundHandler in the ChannelPipeline.
Sub-classes may override this method to change behavior.channelInactive in interface ChannelInboundHandlerchannelInactive in class ByteToMessageDecoderjava.lang.Exception