@Override
public void connect(WsClient client) {
if (client == null) {
throw new NullPointerException("client");
}
final URLInfo url = client.getUrl();
String full = url.protocol + "://" + url.host
+ ":" + url.port + url.path;
URI uri;
try {
uri = new URI(full);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
WebSocketVersion v = WebSocketVersion.V13;
HttpHeaders h = new DefaultHttpHeaders();
final WebSocketClientHandshaker wsch = WebSocketClientHandshakerFactory
.newHandshaker(uri, v, null, true, h, Integer.MAX_VALUE);
final WebSocketHandler handler = new WebSocketHandler(wsch, client);
Bootstrap b = new Bootstrap();
b.group(SharedObjects.getLoop());
b.channel(NioSocketChannel.class);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline p = ch.pipeline();
if (url.secure) {
TrustManagerFactory man = InsecureTrustManagerFactory.INSTANCE;
SslContext con = SslContext.newClientContext(man);
p.addLast(con.newHandler(ch.alloc()));
}
p.addLast(new HttpClientCodec());
p.addLast(new HttpObjectAggregator(8192));
p.addLast(handler);
}
});
ChannelFuture fut = b.connect(url.host, url.port);
fut.syncUninterruptibly();
handler.handshakeFuture().syncUninterruptibly();
}
AndroidWsProvider.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:dslink-java-android
作者:
评论列表
文章目录