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