@Override
  public final void channelRead(ChannelHandlerContext context, Object message) throws Exception {
    if (message instanceof ByteBuf input) {
      try {
        messageReceived(context, input);
      }
      finally {
        // client should release buffer as soon as possible, so, input could be released already
        if (input.refCnt() > 0) {
          input.release();
        }
      }
    }
    else {
      context.fireChannelRead(message);
    }
  }
@Override
  public final void channelRead(ChannelHandlerContext context, Object message)