轮询
服务器定时主动的去与要监控的客户端通信,询问当前某种状态,客户端返回状态信息,客户端没有返回或返回错误,则认为客户端已经宕机。如果客户端宕机之后重启了,那么当服务端定时来轮询的时候,还是可以正常的获取返回信息,把其状态重新更新。
心跳
客户端定时访问服务器,更新自己的当前状态,如果客户端超过指定的时间没有来更新状态,则认为客户端已经宕机。
可以避免服务器压力
通过socket流,定时发送信息到服务器某个接口,服务端收到后更新当前的客户端的状态,本次来更新的时间就是心跳时间,然后服务端还有一个定时器,定时检查所有缓存的客户端会话集合,将其中的心跳时间与当前时间进行对比,如果超过指定的时间还没有来更新则认为该客户端的网络出现异常或宕机。
网友评论