首页 > 代码库 > 浅谈IM软件的“假在线’

浅谈IM软件的“假在线’

概述

假在线,在不可用的网络情况下,IM软件仍显示在线。假在线是一个“在线——离线”之间的一个状态,在此期间,用户无法发送消息,给用户造成错觉假在线可以通过心跳(点击了解),缓解;之所以说缓解,是因为假在线没法根除。

造成假在线的条件

通常就是网络原因

IM软件出现,假在线,给用户的感觉是,该IM软件不够聪明。有时候,用户知道网络不可用了,但是软件仍然没有反应过来。举2个例子:

例1:用户通过家庭WIFI登录IM软件,用户把路由器的入口网线拔了,那么WIFI能连接上,但肯定连接不到外网。这个情况,几乎IM软件都会假在线,原因是IM软件连接的wifi,不知道wifi另一端已经断开。这个场景,只能凭借心跳,结束假在线的状态。

例2:在地铁中,用户凭借经验判断,地铁中没有信号。用户从地面进入到地铁,IM软件还显示在线,这就是假在线。可能过一段时间就会重新连接。

网络问题,是无法避免的。

强制注销

在开发中发现一个bug,其他客户端已经把手机客户端踢了,但是手机客户端仍然显示在线。排除网络的原因,可能是Server或者客户端对注销信令没有处理好!

解决假在线

一、利用心跳

心跳超时后,主动让客户端离线。

二、既然不可避免,通过观念,淡化假在线。

现在的IM软件比较聪明了,软件登录和消息发送是两个事情,登录只管登录,消息根据超时来判断是否超时。例如:qq客户端,离线状态还可以发送消息,只是一直在转圈,等几分钟就提示失败了。