浅谈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客户端,离线状态还可以发送消息,只是一直在转圈,等几分钟就提示失败了。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值