使用netty的SslHandler :: close(ChannelHandlerContext,ChannelPromise)

时间:2018-08-06 14:43:21

标签: netty

我有一个可以相互通信的netty TLS客户端和服务器,我希望在某个时刻关闭TLS会话,但又不关闭不依赖的tcp连接(和相应的netty通道)。

用于SslHandler的JavaDoc似乎暗示这是可能的,并且其中似乎有一个方法可以完全做到这一点:

Map<String,Object> jsonContent

但是,当我像这样在服务器处理程序中调用它时:

public void close(ChannelHandlerContext ctx, final ChannelPromise promise) { ... }

...什么也没发生,即

  1. endTls从未完成;
  2. 在客户端,永远不会通知clientSslHandler.sslCloseFuture()的侦听器。

我尝试从服务器,客户端以及从两者使用close(ctx,promise),但是效果始终相同-未来不会完成,对等方也不会收到close_notify消息。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是sslHandler.close()sslHandler.close(promise)。让我知道它是否满足您的要求。