我刚刚将 projectreactor.io 从 reactor OLD升级:[core: 3.0.1 .RELEASE, netty: 0.5.2 .RELEASE] 到 reactor NEW [core: 3.0.4 .RELEASE, netty: 0.6.0 .RELEASE]。
我打开一个 TcpClient 连接并想稍后关闭它。
在我使用的旧版本中
tcpClient.shutdown();
断开我的客户端与服务器的连接。
新版本中是否有等效调用?我找不到一个!
我在创建我的 TcpClient 时得到的NettyInbound
和NettyOutbound
tcpClient.newHandler(...)
.context().dispose()
.context().channel().disconnect()
.context().channel().close()
TcpResources.reset()
他们似乎都没有正确地完成这项工作。
我注意到.context().onClose(...)
正在调用相应的 -callback 。但是经过一些额外的等待,服务器端会检查连接。服务器端是普通的 NIO2 而不是 reactor/netty,当客户端升级时,服务器端保持不变。
使用OLD客户端,我.isOpen() == false
为服务器端的每个频道提供服务。
使用新客户端,我可以获得.isOpen() == true
服务器端的每个频道。大多数时候我什至可以写信给频道。.isOpen() == false
一些通道在写入几个字节后切换到。