我现在用的方法是这样的:
用户表中有一个IsOnline和ActiveTime字段,用户登录后IsOnline属性就为true,然后客户端每隔3秒给服务器端发送一个心跳包,刷新ActiveTime字段为当前时间,服务器每隔30秒扫描一遍IsOnline属性为true的用户,发现最后收到的心跳包时间与当前时间之差大于10秒的(保守假设在通信线路上消耗的时间为2秒,那么正常情况下服务器是每5秒收到一个心跳包,10秒即连续收不到两个心跳包),那么,便将该用户的IsOnline属性置为false,表明该用户断线了。 用户表中有一个IsOnline和ActiveTime字段,用户
用户表中有一个IsOnline和ActiveTime字段,用户登录后IsOnline属性就为true,然后客户端每隔3秒给服务器端发送一个心跳包,刷新ActiveTime字段为当前时间,服务器每隔30秒扫描一遍IsOnline属性为true的用户,发现最后收到的心跳包时间与当前时间之差大于10秒的(保守假设在通信线路上消耗的时间为2秒,那么正常情况下服务器是每5秒收到一个心跳包,10秒即连续收不到两个心跳包),那么,便将该用户的IsOnline属性置为false,表明该用户断线了。 用户表中有一个IsOnline和ActiveTime字段,用户