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