浅谈IM软件的“假在线’

—————————————————-欢迎查看IM软件业务知识《专栏》——————————————————————-
使用状态机来保持在线状态 【点击】                      拼图算法,将零碎小图,整理到一张大图上【点击】
登录导航 【点击】                                                   会话session的概念【点击】       
“假在线’ 【点击】                                                    非对称加密,RSA算法【点击】
如何建立安全socket连接、登录 【点击】               浅谈断线重连、心跳和长在线 【点击】
iOS 客户端创建 络连接,常见错误汇总 【点击】 protocolBuf 在iOS上的使用入门、讲解、指南 【点击】
实现富文本解析【点击】                                          UITableview Deceleration 加速滑动(惯性滑动)、弹性回归原理【点击】
——————————————————————————————————————————————————————–

概述

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

造成假在线的条件

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

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

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

络问题,是无法避免的。

强制注销

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

解决假在线

一、利用心跳

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

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

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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年5月13日
下一篇 2014年5月13日

相关推荐