socket长连接可以保持多长时间,在服务器和客户端都不主动关闭的情况下,多长时间不通信,移动和联通运营商会关闭这个socket,如果是运营商关闭的,客服端和服务器端都能收到socket被关闭的通知吗
3条回答 默认 最新
J4cks0n 2018-12-20 14:03关注长连接可以一直连接啊,不是有个心跳包吗?而且我记得直接有函数可以设置keepalive的
我就Linux下给你说下
tcp本身有一个包活(keep alive)定时器,在(keep alive)定时器超时之后,会强行将此连接关闭。可以设置tcp keep alive的时间/etc/sysctl.conf
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200默认值如上面所示,设置的很大,7200s后超时,如果想快速回收close_wait可以设置小一点。但最终解决方案还是得从应用程序着手。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报