2016-03-17 115 views
1

有誰知道Netty中的消息可以被丟棄嗎?放棄我的意思是,它不會在渠道上進一步轉發給管道中的其他處理程序。在netty中丟棄消息

這是我能做到的嗎?

public class DiscardInboundHandler extends ChannelInboundHandlerAdapter { 

@Override 
public void channelRead(ChannelHandlerContext ctx, 
           Object msg) { 
    ReferenceCountUtil.release(msg); 
} 

}

+1

所以...我從來沒有使用網狀,但非常_first_頁面[入門教程](http://netty.io/wiki/user-guide -for-5.x.html)演示瞭如何編寫一個忽略所有收到的消息的DISCARD服務器。這不足以爲你寫出你所需要的信息嗎? –

+0

非常感謝您的回覆,但這就是問題,release()函數是否阻止msg進一步遍歷處理程序的管道? 在您提供的鏈接中,僅使用了1個處理程序。如果我們有超過1個處理程序會發生什麼? – Manuel

+0

你可以試試看看會發生什麼。通過實驗學習的意願是任何軟件開發人員所需的基本技能。 –

回答

0

這是用戶的責任,調用ReferenceCountUtil.release(消息)如果消息是 消耗,不會通過在ChannelPipleline下一ChannelOutboundHandler。一旦消息傳遞給實際的傳輸,一旦消息被寫入或通道關閉,消息就會自動釋放。

來源:Netty的行動書