Чтение потока байтов из Mina.MessageReceived()
@Override
public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception
{
}
Мне нужно прочитать сообщение как поток байтов. Но это не гарантирует, что полное сообщение получено. Мне нужно отбросить сообщения, которые содержат менее 16 байтов. Когда вся длина байтов достигает 16, мне нужно их декодировать и использовать. И в любом случае, если он вызывается с 17 байтами, тогда мне нужно обработать только 16 и оставить другой для следующего цикла. Сброс () и пометка () помогают мне в этом. Есть ли способ, которым я могу попросить Мина, чтобы сохранить это. Или я должен использовать свой собственный буфер?
1 ответ
- меньше 16, вы можете установить положение IoBuffer для сброса буфера.
- равно 16, это правда, так что вы можете декодировать его.
- больше 16, вы можете вырезать предыдущие 16 байтов для декодирования и сохранить оставшиеся байты в текущем сеансе