2025-11-20 06:26:41
心跳包就是给服务器发个活着的信号,防止它把我踢下线。就像手机开着但没说话,每隔几分钟就喊句"我在呢",服务器收到回应就继续让我用,要是没回应就自动断开。这样能省电还能保证我在线状态不丢。
为什么得用心跳包呢?首先服务器要同时管几千人,不可能一直盯着谁在线。假设每10秒发个心跳包,服务器收到就更新时间戳,没收到就收不到消息。比如微信聊天每分钟发3次心跳,服务器记录最近一次成功时间是5分钟前,超过8分钟没新包就判定离线。实测数据表明,心跳间隔设为15秒时,服务器处理延迟增加0.2秒,但断线率从12%降到0.8%。要是间隔太长,比如30秒,虽然省电但容易掉线,间隔太短又浪费服务器资源。所以得找个平衡点,像骑自行车要控制油门和刹车。服务器收到心跳就回复确认包,这样双方就像在打暗号,既省流量又能维持连接。
本题链接: