浅谈IM软件的“假在线’

概述

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

造成假在线的条件

通常就是网络原因

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

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

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

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

强制注销

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

解决假在线

一、利用心跳

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

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

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

浅谈IM软件的“假在线’

时间: 2024-07-31 14:33:11

浅谈IM软件的“假在线’的相关文章

浅谈IM软件业务知识—会话session的概念,附一张IM软件的层次图

session一般出现在计算机领域,IM软件中的session,老的IM有两层:首先是逻辑层的session来管理会话的参与者,消息列表,会话类型等等:还有协议层的session,主要是代表客户端跟服务器的一个事物通道. 老的IM软件 客户端跟Server交互的每一类操作都是基于会话.比如客户端登录,需要建立一个登录的会话:客户端发消息,需要建立一个会话.下面举例: 客户端向Server发了一条消息,这条消息的发送就建立在会话之上.客户端需要下面几个步骤. 1. 创建一个session ID=1

浅谈IM软件业务知识——非对称加密,银行U盾的原理

概述 首先了解一下相关概念:RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数论:将两个大素数相乘非常容易,但要对这个乘积的结果进行 因式分解却非常困难,因此可以把乘积公开作为公钥,该算法能够抵抗目前已知的所有密码攻击.RSA算法是一种非对称算法,算法需要一对密钥,使用其中一个 加密,需要使用另外一个才能解密.我们在进行RSA加密通讯时,就把公钥放在客户端,私钥留在服务器. RSA非对称加密算法,可以验

浅谈敏捷软件开发与传统软件开发

本文将介绍传统软件开发与敏捷软件开发,并简单分析二者的优缺. 首先我查阅相关资料大致了解了下为什么会爆发"软件危机"和什么是"软件危机".由于在早期的软件开发活动中有明显的个体化特征,开发流程不规范,人们没有将软件与程序加以详细的区别,对程序之外的数据和相关文档资料没有给予重视,对编写程序之外的软件活动也没有给予重视,因此出现了"软件危机"."软件危机"的特点有:开发成本急剧上升.不能按时交付软件.软件难以维护.无法保证软件质

浅谈IM软件怎样建立安全socket连接、登录

----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------------------------------------------------使用状态机来保持在线状态 [点击]                      拼图算法,将零碎小图,整理到一张大图上[点击]登录导航 [点击]                                          

浅谈敏捷软件开发与传统软件工程的对比与敏捷开发产生的原因

引言 在"计算机程序的蛮荒时代",人们对于程序的设计.编写是随想随写.灵活变化的.正如我们初学各种编程语言时那样,似乎把程序写对也不是什么很难的事情.然而,这种程序设计模式或许适用于几百行至几千行的小程序,而当我们面对更大的软件规模.更多的代码行数以及更复杂的人员架构时,这种随想随写的程序开发模式似乎不再适用,于是使人们遇到了「软件危机」,进而促使了软件工程这样一门学科的产生. 在我上一门程序设计的课程的时候,老师讲过,当我们学习各种语言.算法和数据结构时,我们学习的是怎样进行&quo

浅谈安卓软件如何实现企业盈利

谷歌系统的开源性不仅提供了一个免费的平台,而且也让很多第三方Android应用程序商店加入其中.这其中还包括了亚马逊Android商店.与此同时,各大Android手机厂商以及运营商也纷纷开设了自己的安卓应用商店.这种情况在iOS,Symbian,乃至Windows Phone 7中是不存在的.在你争我夺的价格战背后,一系列新的疑问也随之而来.Android第三方应用商店真的能盈利吗?通过何种方式盈利?用户最关注的安全性又如何保障?借助谷歌庞大的广告网络,Android第三方应用最终会如何发展?

浅谈IM软件业务知识——非对称加密,RSA算法,数字签名,公钥,私钥

概述 首先了解一下相关概念:RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的.RSA就是取自他们三个人的名字. 算法基于一个数论:将两个大素数相乘很easy,但要对这个乘积的结果进行 因式分解却很困难,因此可以把乘积公开作为公钥.该算法可以抵抗眼下已知的全部password攻击. RSA算法是一种非对称算法,算法须要一对密钥.使用当中一个 加密.须要使用另外一个才干解密.我们在进行RSA加密通讯时.就把公钥放在client,私钥留在server.

银钻娱乐客服15687949443浅谈社交软件

提起中国的社交软件,比较厉害的两个那就应该是QQ与微信.这两个产品可是腾讯的摇钱树,聚宝盆.归结其原因,也就是居高不下的活跃用户量了.现在各种外卖APP,打车APP,购物APP等疯狂补贴用户,不都是为了用户量和市场占有率吗! 今天要说的就是QQ与微信这两款社交软件.曾在15年11月份的时候看到过一条新闻,说的是微信的月活跃用户量6.5亿,同比增长百分之三十九,超越移动QQ.期间竟然还有人说,微信必将取代移动QQ.我想了想后,却很不以为然,因为数据只是数据,你要根据数据去理智的进行分析判断. 首先

版本管理和项目管理软件浅谈

版本管理和项目管理软件浅谈 项目管理软件 Trac vs Redmine 关于Trac,之前想为计组实验平台搭建Wiki的时候作为“备胎”所了解过,而与当时功能与其相似,看起来更有竞争力的产品——Redmine相比而言我更加看好Trac,因为Redmine有一些严重的缺点: 安装非常麻烦.在实际的生产环境中,Redmine在Debian\Ubuntu系统下没法稳定运作.Redmine的依赖是固定的,所以一些新的版本库可能没法工作.而且必须自己在apt-get中配置更新源,否则很容易错将某些依赖升