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

浅谈IM软件的“假在线’相关推荐

  1. 软件工程:浅谈人工智能软件开发与传统软件开发的区别

    题目:浅谈人工智能软件开发与传统软件开发的区别 摘要:人工智能的飞速发展带动着软件工程的发展,最终使得软件工程产生新的变革.因为人工智能特有的性质,因而导致了人工智能软件与传统软件的差异性.本文对比了 ...

  2. 浅谈汽车软件的质量保证

    浅谈汽车软件的质量保证 笔者今天工作间隙,看了一下ASPICE文档,产生了一点心得,愿与大家一起分享.欢迎交流分享. 什么是ASPICE ASPICE是Automotive SPICE的简称,即汽车行 ...

  3. 浅谈IM软件客户端的断线重连、心跳和长在线

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  4. 浅谈IM软件业务知识-实现富文本解析,如:解析字符串、网络链接等

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

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

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  6. 浅谈IM软件如何建立安全socket连接、登录

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  7. 浅谈 RISC-V 软件开发生态之 IDE

    软件开发者是芯片公司非常重要的资产,CPU做出来是不够的,要让更多的软件开发者用这颗芯片才是成功.国际大厂们都有一只较大的软件团队,在做面向开发者的软件工具和SDK等.--张先轶博士:为什么RISC- ...

  8. 一个菜鸟浅谈对 软件、程序、软件模型的认识 ——!

    作为一个菜鸟,让我谈关于软件,程序,软件模型的心得,无异于是很天方夜谭的事情,据说很多的专家于此都没有给出明确的定义,我就用这些年中对于电脑的认识,来随便说说. 1.谈到软件,太专业的术语即使说了,我 ...

  9. 浅谈对软件企业OEM的理解

    OEM (Original Equipment Manufacturer),汉语的翻译为"原始设备制造商",含义是指定牌生产合作,通俗的说法叫做"代工".这里面 ...

最新文章

  1. javabean属性的类型选择包装类还是基本数据类型
  2. MSRA副院长周明博士:四大研究领域揭示自然语言技术的奥秘
  3. 在循环中删除list中的元素
  4. 《algorithm-note》算法笔记中文版正式发布!
  5. Java 套接字Socket
  6. JS本地加密防止嗅探
  7. [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
  8. vmware中按Ctrl+Alt+Del的困扰
  9. 休闲娱乐的计算机配置,入门APU主机配置 1199元双核APU家用娱乐电脑配置推荐
  10. 用双网卡实现跨网段访问(转载)
  11. 对于 js 性能优化的启发,debounce 和 throttle。
  12. 线路,数据通路,数据总线的关系
  13. c语言写的贪吃蛇在哪能运行,有没有可以帮我写c语言贪吃蛇的代码 cmd运行的
  14. 群晖NAS跨存储空间移动套件(应用)
  15. m725扫描仪无法找到计算机,惠普m725扫描设置指定的网络文件夹路径不存在?
  16. Maven项目配置依赖时报错:Duplicated tag: ‘plugins‘...不会解决
  17. 网页端哔哩哔哩4倍速播放视频 哔哩哔哩3倍
  18. mac电脑删除多余输入法
  19. JOOQ 踩坑和评价
  20. vue+cesium汉化包

热门文章

  1. 人月神话笔记-外科手术队伍
  2. 移动端的视频窗口自适应宽屏竖屏
  3. 【Verilog基础】RTL设计指导原则(面积与速度互换(模块复用)、乒乓操作、流水线操作)
  4. 过渡和动画的基本知识
  5. snowflake做主键 自增_GitHub - MarvinYu/snowflake: Twitter的雪花算法(snowflake)分布式自增ID...
  6. github的tag
  7. ERROR [io.undertow.request] UT005023: Exception handling request 报错处理
  8. 【沐风老师】3DMAX艺术样条线增强螺旋线插件使用教程
  9. 游戏服务器的数据保存
  10. python 树结构 sql_sqlserver 树结构递归(向上递归和向下递归)