2
在Netty中,有沒有人知道在處理它時,Netty框架將同時向ChannelBuffer傳遞給上游事件的處理程序(在從ChannelEvent /或MessageEvent進行投射之後) ?Netty是否同時修改傳遞的ChannelBuffers
用戶指南和示例沒有明確說明這是否會發生。
例如,假設在下面延伸SimpleChannelHandler和綁定爲一個網狀服務器上的處理程序一類的方法:
@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?
}
}
在上述方法中,有可能是可讀的字節到數增加註釋行(假設客戶端仍在發送數據),還是將這些幀保證爲單獨的消息,而不是寫入提供的緩衝區?
我問的原因是要知道我是否應該在執行一些處理之前將緩衝區複製到本地緩衝區,或者是否這樣的副本是多餘的。
感謝Trustin!我認爲/希望這是行爲,只是想確保我沒有遇到任何奇怪的錯誤。 –