赞
踩
就是为了保证长连接的可靠性,可以通过自己定义的探测频率,对长期无数据交互的长连接进行通道探测,保证连接的可靠和通畅。
KeepAliveTime: 连接创建之后,经过一段静默时间开始发送keepalive的探测包,KeepAliveTime就代表静默时间长度,单位是ms
缺省情况下,如果空闲连接在7200000毫秒(2小时)内没有活动,系统就会发送保持连接的消息。 通常建议把该值设
为1800000毫秒,从而丢失的连接会在30分钟内被检测到。
具体操作:
浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子键,在Parameters
子键下创建或修改名为KeepAliveTime的REG_DWORD值
KeepAliveInterval:keepAlive没有收到回复之后,重复发送keepAlive的时间间隔,KeepAliveInterval就代表未收到回复的探测时间
间隔,单位是ms
缺省情况下,在未收到响应而重新发送“保持连接”的信号之前,系统会等待1000毫秒(1秒),可以根据具体需求修
改
具体操作:
浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子键,在
Parameters子键下创建或修改名为KeepAliveInterval的REG_DWORD值。
TcpMaxDataRetransmissions:在KeepAlive未收到回复之后,重复发送keepAlive的次数,TcpMaxDataRetransmissions就代表这个
重发次数
缺省情况下,系统会重新发送未返回应答的数据段10次,可以根据具体需求修改
具体操作:
浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子
键,在Parameters子键下创建或修改名为TcpMaxDataRetransmissions的REG_DWORD值,该值的范围
是从0到4294967295,缺省值为5,根据实际情况进行设置。
实际测试时发现,windows下修改重发次数根本就没有效果,系统依然会默认发送10次,所以想缩短探测时常,只能在参数1和参数2进行修改
bootstrap.childOption(ChannelOption.SO_KEEPALIVE,true);
bootstrap.childOption(NioChannelOption.of(StandardSocketOptions.SO_KEEPALIVE), true);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。