public final class io.netty.example.http.websocketx.client.WebSocketClient
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.example.http.websocketx.client.WebSocketClient
super_class: java.lang.Object
{
static final java.lang.String URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "url"
ldc "ws://127.0.0.1:8080/websocket"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putstatic io.netty.example.http.websocketx.client.WebSocketClient.URL:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/example/http/websocketx/client/WebSocketClient;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=15, args_size=1
start local 0 0: new java.net.URI
dup
getstatic io.netty.example.http.websocketx.client.WebSocketClient.URL:Ljava/lang/String;
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
ifnonnull 2
ldc "ws"
goto 3
StackMap locals: java.net.URI
StackMap stack:
2: aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
3: astore 2
start local 2 4: aload 1
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
ifnonnull 5
ldc "127.0.0.1"
goto 6
StackMap locals: java.lang.String
StackMap stack:
5: aload 1
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
6: astore 3
start local 3 7: aload 1
invokevirtual java.net.URI.getPort:()I
iconst_m1
if_icmpne 16
8: ldc "ws"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 11
9: bipush 80
istore 4
start local 4 10: goto 17
end local 4 StackMap locals: java.lang.String
StackMap stack:
11: ldc "wss"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 14
12: sipush 443
istore 4
start local 4 13: goto 17
end local 4 14: StackMap locals:
StackMap stack:
iconst_m1
istore 4
start local 4 15: goto 17
end local 4 16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.net.URI.getPort:()I
istore 4
start local 4 17: StackMap locals: int
StackMap stack:
ldc "ws"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 20
ldc "wss"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 20
18: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Only WS(S) is supported."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: return
20: StackMap locals:
StackMap stack:
ldc "wss"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
istore 5
start local 5 21: iload 5
ifeq 26
22: invokestatic io.netty.handler.ssl.SslContextBuilder.forClient:()Lio/netty/handler/ssl/SslContextBuilder;
23: getstatic io.netty.handler.ssl.util.InsecureTrustManagerFactory.INSTANCE:Ljavax/net/ssl/TrustManagerFactory;
invokevirtual io.netty.handler.ssl.SslContextBuilder.trustManager:(Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContextBuilder;
invokevirtual io.netty.handler.ssl.SslContextBuilder.build:()Lio/netty/handler/ssl/SslContext;
24: astore 6
start local 6 25: goto 27
end local 6 26: StackMap locals: int
StackMap stack:
aconst_null
astore 6
start local 6 27: StackMap locals: io.netty.handler.ssl.SslContext
StackMap stack:
new io.netty.channel.nio.NioEventLoopGroup
dup
invokespecial io.netty.channel.nio.NioEventLoopGroup.<init>:()V
astore 7
start local 7 28: new io.netty.example.http.websocketx.client.WebSocketClientHandler
dup
29: aload 1
getstatic io.netty.handler.codec.http.websocketx.WebSocketVersion.V13:Lio/netty/handler/codec/http/websocketx/WebSocketVersion;
aconst_null
iconst_1
new io.netty.handler.codec.http.DefaultHttpHeaders
dup
invokespecial io.netty.handler.codec.http.DefaultHttpHeaders.<init>:()V
30: invokestatic io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory.newHandshaker:(Ljava/net/URI;Lio/netty/handler/codec/http/websocketx/WebSocketVersion;Ljava/lang/String;ZLio/netty/handler/codec/http/HttpHeaders;)Lio/netty/handler/codec/http/websocketx/WebSocketClientHandshaker;
31: invokespecial io.netty.example.http.websocketx.client.WebSocketClientHandler.<init>:(Lio/netty/handler/codec/http/websocketx/WebSocketClientHandshaker;)V
32: astore 8
start local 8 33: new io.netty.bootstrap.Bootstrap
dup
invokespecial io.netty.bootstrap.Bootstrap.<init>:()V
astore 9
start local 9 34: aload 9
aload 7
invokevirtual io.netty.bootstrap.Bootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
35: ldc Lio/netty/channel/socket/nio/NioSocketChannel;
invokevirtual io.netty.bootstrap.Bootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
36: new io.netty.example.http.websocketx.client.WebSocketClient$1
dup
aload 6
aload 3
iload 4
aload 8
invokespecial io.netty.example.http.websocketx.client.WebSocketClient$1.<init>:(Lio/netty/handler/ssl/SslContext;Ljava/lang/String;ILio/netty/example/http/websocketx/client/WebSocketClientHandler;)V
invokevirtual io.netty.bootstrap.Bootstrap.handler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
pop
37: aload 9
aload 1
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
iload 4
invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
invokeinterface io.netty.channel.ChannelFuture.sync:()Lio/netty/channel/ChannelFuture;
invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
astore 10
start local 10 38: aload 8
invokevirtual io.netty.example.http.websocketx.client.WebSocketClientHandler.handshakeFuture:()Lio/netty/channel/ChannelFuture;
invokeinterface io.netty.channel.ChannelFuture.sync:()Lio/netty/channel/ChannelFuture;
pop
39: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
getstatic java.lang.System.in:Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 11
start local 11 40: StackMap locals: java.lang.String[] java.net.URI java.lang.String java.lang.String int int io.netty.handler.ssl.SslContext io.netty.channel.EventLoopGroup io.netty.example.http.websocketx.client.WebSocketClientHandler io.netty.bootstrap.Bootstrap io.netty.channel.Channel java.io.BufferedReader
StackMap stack:
aload 11
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 12
start local 12 41: aload 12
ifnonnull 43
42: goto 57
43: StackMap locals: java.lang.String
StackMap stack:
ldc "bye"
aload 12
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 47
44: aload 10
new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
dup
invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:()V
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
45: aload 10
invokeinterface io.netty.channel.Channel.closeFuture:()Lio/netty/channel/ChannelFuture;
invokeinterface io.netty.channel.ChannelFuture.sync:()Lio/netty/channel/ChannelFuture;
pop
46: goto 57
47: StackMap locals:
StackMap stack:
ldc "ping"
aload 12
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 51
48: new io.netty.handler.codec.http.websocketx.PingWebSocketFrame
dup
iconst_4
newarray 8
dup
iconst_0
bipush 8
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
bipush 8
bastore
dup
iconst_3
iconst_1
bastore
invokestatic io.netty.buffer.Unpooled.wrappedBuffer:([B)Lio/netty/buffer/ByteBuf;
invokespecial io.netty.handler.codec.http.websocketx.PingWebSocketFrame.<init>:(Lio/netty/buffer/ByteBuf;)V
astore 13
start local 13 49: aload 10
aload 13
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 13 50: goto 40
51: StackMap locals:
StackMap stack:
new io.netty.handler.codec.http.websocketx.TextWebSocketFrame
dup
aload 12
invokespecial io.netty.handler.codec.http.websocketx.TextWebSocketFrame.<init>:(Ljava/lang/String;)V
astore 13
start local 13 52: aload 10
aload 13
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 13 end local 12 53: goto 40
end local 11 end local 10 end local 9 end local 8 54: StackMap locals: java.lang.String[] java.net.URI java.lang.String java.lang.String int int io.netty.handler.ssl.SslContext io.netty.channel.EventLoopGroup
StackMap stack: java.lang.Throwable
astore 14
55: aload 7
invokeinterface io.netty.channel.EventLoopGroup.shutdownGracefully:()Lio/netty/util/concurrent/Future;
pop
56: aload 14
athrow
57: StackMap locals:
StackMap stack:
aload 7
invokeinterface io.netty.channel.EventLoopGroup.shutdownGracefully:()Lio/netty/util/concurrent/Future;
pop
58: return
end local 7 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 59 0 args [Ljava/lang/String;
1 59 1 uri Ljava/net/URI;
4 59 2 scheme Ljava/lang/String;
7 59 3 host Ljava/lang/String;
10 11 4 port I
13 14 4 port I
15 16 4 port I
17 59 4 port I
21 59 5 ssl Z
25 26 6 sslCtx Lio/netty/handler/ssl/SslContext;
27 59 6 sslCtx Lio/netty/handler/ssl/SslContext;
28 59 7 group Lio/netty/channel/EventLoopGroup;
33 54 8 handler Lio/netty/example/http/websocketx/client/WebSocketClientHandler;
34 54 9 b Lio/netty/bootstrap/Bootstrap;
38 54 10 ch Lio/netty/channel/Channel;
40 54 11 console Ljava/io/BufferedReader;
41 53 12 msg Ljava/lang/String;
49 50 13 frame Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
52 53 13 frame Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
Exception table:
from to target type
28 54 54 any
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
}
SourceFile: "WebSocketClient.java"
NestMembers:
io.netty.example.http.websocketx.client.WebSocketClient$1
InnerClasses:
io.netty.example.http.websocketx.client.WebSocketClient$1