Netty中兩種Keepalive的區別


在Server端開啟TCP keepalive: 兩種方式

serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);
serverBootstrap.childOption(NioChannelOption.SO_KEEPALIVE,true)

提示:“.option(ChannelOption.SO_KEEPALIVE,true)”存在,但是無效。

兩種方式表面來看沒啥大區別,但是在跟蹤源碼的時候有這么一節:

  在"NioSocketChannel"中有這個方法:

 

if語句里的"NioChannelOption.setOption()"和if外的調用“super.setOption()”其實就是區別所在,

if語句里進入則:

 

 

而外面的調用則是:

 

 

 不難看出,上面的調用是JDK調用,下面的則是寫一堆if...else來確定的,很明顯,下面的方式沒有上面的好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM