我试图让两个对等点相互通信,并能够切换到ssl/非ssl。与此类似。我使用netty 4.1.65.final。
客户端设置:
@Override
protected void initChannel(Channel ch) throws Exception {
SslHandler sslHandler = sslContext.newHandler(ch.alloc());
sslHandler.setHandshakeTimeoutMillis(10 * 1000L);
sslHandler.engine().beginHandshake();
// Adding handshake listener before adding handler to pipeline
sslHandler.handshakeFuture()
.addListener((GenericFutureListener<Future<Channel>>)
future -> {
// If handshake was successful keep sslHandler in pipeline
if (!future.isSuccess()) {
// No ssl on server side, remove ssl from client side.
ch.pipeline().remove(sslHandler);
}
});
ch.pipeline().addLast(sslHandler);
}
它与服务器端的sslhandler或optinalsslhandler一起工作(使用ssl),但当服务器端没有ssl时,由于错误,无法从客户端管道中删除ssl处理程序
Pending write on removal of SslHandler
at io.netty.handler.ssl.SslHandler.handlerRemoved0(SslHandler.java:677)
暂无答案!
目前还没有任何答案,快来回答吧!