Я только что обновил projectreactor.io с реактора OLD: [core: 3.0.1 .RELEASE, netty: 0.5.2 .RELEASE] до response. НОВИНКА [core: 3.0.4 .RELEASE, netty: 0.6.0 .RELEASE].
Я открываю соединение TcpClient и хочу закрыть его позже.
В СТАРОЙ версии, которую я использовал
tcpClient.shutdown();
отключить моего клиента от сервера.
Есть ли в НОВОЙ версии аналогичный вызов? Мне не удалось его найти!
Я пробовал следующее на NettyInbound
и NettyOutbound
, которые я получаю при создании своего TcpClient с tcpClient.newHandler(...)
.context().dispose()
.context().channel().disconnect()
.context().channel().close()
TcpResources.reset()
Похоже, что ни один из них не выполняет свою работу правильно.
Я заметил, что вызывается соответствующий .context().onClose(...)
-callback. Но после некоторого дополнительного ожидания серверная сторона проверяет соединения. Серверная сторона - это простой NIO2, а не response / netty, и пока клиент был обновлен, серверная сторона осталась неизменной.
Используя СТАРЫЙ клиент, я получил .isOpen() == false
для каждого канала на стороне сервера.
С клиентом NEW я получаю .isOpen() == true
для каждого канала на стороне сервера. Большую часть времени я даже могу писать на канал. А некоторые каналы переключаются на .isOpen() == false
после записи нескольких байтов.