public class io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler extends io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler
super_class: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler
{
private static final io.netty.util.AttributeKey<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker> HANDSHAKER_ATTR_KEY;
descriptor: Lio/netty/util/AttributeKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lio/netty/util/AttributeKey<Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;>;
private final java.lang.String websocketPath;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String subprotocols;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean allowExtensions;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxFramePayloadLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean allowMaskMismatch;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean checkStartsWith;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;
ldc "HANDSHAKER"
invokestatic io.netty.util.AttributeKey.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Lio/netty/util/AttributeKey;
1: putstatic io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HANDSHAKER_ATTR_KEY:Lio/netty/util/AttributeKey;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
iconst_0
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
MethodParameters:
Name Flags
websocketPath
public void <init>(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
iconst_0
ldc 65536
iconst_0
iload 2
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;ZIZZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
0 2 2 checkStartsWith Z
MethodParameters:
Name Flags
websocketPath
checkStartsWith
public void <init>(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
0 2 2 subprotocols Ljava/lang/String;
MethodParameters:
Name Flags
websocketPath
subprotocols
public void <init>(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
ldc 65536
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;ZI)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
0 2 2 subprotocols Ljava/lang/String;
0 2 3 allowExtensions Z
MethodParameters:
Name Flags
websocketPath
subprotocols
allowExtensions
public void <init>(java.lang.String, java.lang.String, boolean, int);
descriptor: (Ljava/lang/String;Ljava/lang/String;ZI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
iload 3
iload 4
iconst_0
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;ZIZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
0 2 2 subprotocols Ljava/lang/String;
0 2 3 allowExtensions Z
0 2 4 maxFrameSize I
MethodParameters:
Name Flags
websocketPath
subprotocols
allowExtensions
maxFrameSize
public void <init>(java.lang.String, java.lang.String, boolean, int, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;ZIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
iload 3
iload 4
iload 5
iconst_0
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.<init>:(Ljava/lang/String;Ljava/lang/String;ZIZZ)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 2 1 websocketPath Ljava/lang/String;
0 2 2 subprotocols Ljava/lang/String;
0 2 3 allowExtensions Z
0 2 4 maxFrameSize I
0 2 5 allowMaskMismatch Z
MethodParameters:
Name Flags
websocketPath
subprotocols
allowExtensions
maxFrameSize
allowMaskMismatch
public void <init>(java.lang.String, java.lang.String, boolean, int, boolean, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;ZIZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler.<init>:()V
1: aload 0
aload 1
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.websocketPath:Ljava/lang/String;
2: aload 0
aload 2
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.subprotocols:Ljava/lang/String;
3: aload 0
iload 3
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.allowExtensions:Z
4: aload 0
iload 4
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.maxFramePayloadLength:I
5: aload 0
iload 5
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.allowMaskMismatch:Z
6: aload 0
iload 6
putfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.checkStartsWith:Z
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 8 1 websocketPath Ljava/lang/String;
0 8 2 subprotocols Ljava/lang/String;
0 8 3 allowExtensions Z
0 8 4 maxFrameSize I
0 8 5 allowMaskMismatch Z
0 8 6 checkStartsWith Z
MethodParameters:
Name Flags
websocketPath
subprotocols
allowExtensions
maxFrameSize
allowMaskMismatch
checkStartsWith
public void handlerAdded(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
astore 2
start local 2 1: aload 2
ldc Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandshakeHandler;
invokeinterface io.netty.channel.ChannelPipeline.get:(Ljava/lang/Class;)Lio/netty/channel/ChannelHandler;
ifnonnull 7
2: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.name:()Ljava/lang/String;
ldc Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandshakeHandler;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
3: new io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandshakeHandler
dup
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.websocketPath:Ljava/lang/String;
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.subprotocols:Ljava/lang/String;
4: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.allowExtensions:Z
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.maxFramePayloadLength:I
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.allowMaskMismatch:Z
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.checkStartsWith:Z
5: invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandshakeHandler.<init>:(Ljava/lang/String;Ljava/lang/String;ZIZZ)V
6: invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
7: StackMap locals: io.netty.channel.ChannelPipeline
StackMap stack:
aload 2
ldc Lio/netty/handler/codec/http/websocketx/Utf8FrameValidator;
invokeinterface io.netty.channel.ChannelPipeline.get:(Ljava/lang/Class;)Lio/netty/channel/ChannelHandler;
ifnonnull 11
8: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.name:()Ljava/lang/String;
ldc Lio/netty/handler/codec/http/websocketx/Utf8FrameValidator;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
9: new io.netty.handler.codec.http.websocketx.Utf8FrameValidator
dup
invokespecial io.netty.handler.codec.http.websocketx.Utf8FrameValidator.<init>:()V
10: invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 12 1 ctx Lio/netty/channel/ChannelHandlerContext;
1 12 2 cp Lio/netty/channel/ChannelPipeline;
MethodParameters:
Name Flags
ctx
protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, java.util.List<java.lang.Object>);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
ifeq 8
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokestatic io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.getHandshaker:(Lio/netty/channel/Channel;)Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;
astore 4
start local 4 2: aload 4
ifnull 6
3: aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.retain:()Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
pop
4: aload 4
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 2
checkcast io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker.close:(Lio/netty/channel/Channel;Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)Lio/netty/channel/ChannelFuture;
pop
5: goto 7
6: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker
StackMap stack:
aload 1
getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
getstatic io.netty.channel.ChannelFutureListener.CLOSE:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
7: StackMap locals:
StackMap stack:
return
end local 4 8: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler.decode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 10 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 10 2 frame Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
0 10 3 out Ljava/util/List<Ljava/lang/Object;>;
2 8 4 handshaker Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;
Exceptions:
throws java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
ctx
frame
out
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.http.websocketx.WebSocketHandshakeException
ifeq 6
1: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
2: getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
getstatic io.netty.handler.codec.http.HttpResponseStatus.BAD_REQUEST:Lio/netty/handler/codec/http/HttpResponseStatus;
aload 2
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
invokestatic io.netty.buffer.Unpooled.wrappedBuffer:([B)Lio/netty/buffer/ByteBuf;
3: invokespecial io.netty.handler.codec.http.DefaultFullHttpResponse.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpResponseStatus;Lio/netty/buffer/ByteBuf;)V
astore 3
start local 3 4: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 3
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
getstatic io.netty.channel.ChannelFutureListener.CLOSE:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 3 5: goto 8
6: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
pop
7: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerProtocolHandler;
0 9 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 9 2 cause Ljava/lang/Throwable;
4 5 3 response Lio/netty/handler/codec/http/FullHttpResponse;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
cause
static io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker getHandshaker(io.netty.channel.Channel);
descriptor: (Lio/netty/channel/Channel;)Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HANDSHAKER_ATTR_KEY:Lio/netty/util/AttributeKey;
invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
invokeinterface io.netty.util.Attribute.get:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 channel Lio/netty/channel/Channel;
MethodParameters:
Name Flags
channel
static void setHandshaker(io.netty.channel.Channel, io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker);
descriptor: (Lio/netty/channel/Channel;Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HANDSHAKER_ATTR_KEY:Lio/netty/util/AttributeKey;
invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
aload 1
invokeinterface io.netty.util.Attribute.set:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 channel Lio/netty/channel/Channel;
0 2 1 handshaker Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;
MethodParameters:
Name Flags
channel
handshaker
static io.netty.channel.ChannelHandler forbiddenHttpRequestResponder();
descriptor: ()Lio/netty/channel/ChannelHandler;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$1
dup
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$1.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "WebSocketServerProtocolHandler.java"
NestMembers:
io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$1 io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$HandshakeComplete io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$ServerHandshakeStateEvent
InnerClasses:
io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$1
public final HandshakeComplete = io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$HandshakeComplete of io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler
public final ServerHandshakeStateEvent = io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler$ServerHandshakeStateEvent of io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler