Если я правильно понял вашу проблему: вы хотите прослушивать события закрытия канала клиента на стороне сервера и выполнять некоторую очистку сеанса,
Существует два способа прослушивания событий закрытия канала в Netty:
1) Если ваш обработчик сервера расширяет SimpleChannelHandler/SimpleChannelHandler
, то вы можете переопределить следующий метод и записать там логику очистки сеанса
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception;
2) Если у вас есть только доступ к ссылке на канал, то выможет закрыть канал в будущем и зарегистрировать реализацию ChannelFutureListener
с помощью логики очистки сеанса,
ChannelFuture closeFuture = channel.closeFuture();
closeFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
//session cleanup logic
}
});