Sending large data in custom IQ

We have a custom IQ and we are sending large data (animation 200KB - 1 MB) , I thought at the start this is better than to implement ftp server, but then I noticed that this approach is cause lags in the client and in one thread I read that (Smack is single threaded) and this would caused all other (smaller) messages to be delayed.

So, what is an alternative approach to this that will not cause read-block to the incoming messages

Thanks in advance.