В Netty кто-нибудь знает, будет ли ChannelBuffer, переданный в обработчик для события восходящего потока (после того, как вы приведете его из ChannelEvent / или MessageEvent), будет одновременно записываться в инфраструктуру Netty во время его обработки?
В руководстве пользователя и примерах явно не поясняется, произойдет ли это или нет.
Например, представьте метод ниже в классе, который расширяет SimpleChannelHandler и связан как обработчик на сервере netty:
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
{
ChannelBuffer buffer = (ChannelBuffer) e.getMessage();
if (buffer.readableBytes() == 4)
{
// Is it possible for the number of readable bytes to increase here?
}
}
В вышеупомянутом методе возможно ли увеличение количества читаемых байтов в закомментированной строке (при условии, что клиент все еще отправляет данные), или эти кадры гарантированно будут отдельными сообщениями и не будут записаны впредоставленный буфер?
Причина, по которой я спрашиваю, состоит в том, чтобы узнать, должен ли я скопировать буфер в локальный, прежде чем выполнять какую-либо часть моей обработки, или такая копия является излишней.