IM通信异常场景

场景一:

发送方客户端正常,接入服务器Down机。

这种场景下,客户端发送的消息会出现两种状态。第一种是,接入服务器已经送入路由服务器中进行转发,但是还没有回ACK给客户端。第二种是,消息尚未进入路由服务器进行转发。

场景二:

发送方客户端Down机,接入服务器正常。

这种场景下,客户端发送的消息也存在两种状态。第一种是,接入服务器极影送入路由服务器中进行转发,同时回复ACK。

第二种是,该消息直接发生了丢失,接入服务器没有收到。

场景三:

接收方客户端不断的闪连,接入服务器正常。

这种情况下,离线消息和即时消息会出现两种状态。第一种是,消息路由给客户端了,ACK丢失。第二种是,消息尚未路由给客户端,就发生丢失。

这是最常见的三个场景,也是最容易处理的场景,至于怎么处理,大家都清楚我就不多废话了。

场景四:

发送方客户端不断的闪连,接入服务器间歇性Down机。

这种情况下,消息存在的状态就比较复杂了,但是无非是上三种情况的排列组合。

时间: 2024-08-29 21:02:27

IM通信异常场景的相关文章

CSR8670脱机运行后串口通信异常

1. UART通信异常 1.1. 现象 周五在调试CSR8670时遇到一个严重的问题:在xIDE环境下调试时,CSR8670收到MCU发来的数据后都会正常应答.一旦脱机运行,CSR8670与MCU的通信发生异常,具体现象如下: MCU发送一条x字节的命令给CSR8670,UART task收到的命令的长度不足x字节,最先发送的若干字节丢失 MCU以较短间隔发送多条x字节的命令给CSR8670,UART task收到的第一条命令的长度不足x字节,之后每条命令的长度都是x字节 1.2. 检查硬件 我

一种隐蔽性较高的Java ConcurrentModificationException异常场景

在使用Iterator遍历容器类的过程中,如果对容器的内容进行增加和删除,就会出现ConcurrentModificationException异常.该异常的分析和解决方案详见博文<Java ConcurrentModificationException 异常分析与解决方案>和<解决ArrayList的ConcurrentModificationException>.本文展示一种隐蔽性较高的ConcurrentModificationException异常场景,并给出解决方案. 代

CAN总线多节点通信异常分析及解决

一.CAN物理层特征 CAN收发器的作用是负责逻辑电平和信号电平之间的转换.即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据. 市场上常用的收发器(例如: VP230.TJA1040.TCAN337等)多为ISO 11898标准.在此标准中,对于CAN的信号逻辑1和0的产生:当CAN_H为3.5V,CAN_L为1.5V,差值为2V左右时为显性(dominant)电平表示,而两

虚拟服务器使用E1000E类型的网卡,可能会 导致故障转移功能通信异常,不稳定

最近在搭建Windows Server 2012故障转移运行环境,计划在上面运行SQL Server 2012 AlwaysOn,虚拟服务器是运行在VMware ESXi 5.5.0平台上,发现如果虚拟服务器使用E1000E(下图)类型的网卡时,故障转移通信经常会出现故障,两台服务器互相ping时,偶尔有丢包:如果是使用E1000,VMXNET3类型的网卡,则故障转移通信正常,互ping也没有丢包.

mysql类型与java类型对应异常场景

MySQL的bigint unsigned类型,对应java的BigInteger类型,在基于mybatis框架时,如果我将bigint unsigned类型的字段的返回放在一个map的返回类型中时.即便在java的返参中定义泛型Long,但是由于泛型擦除机制,Long类型不生效.在从map中取出来数据的时候,必须进行强制类型转换来获取数据.

通信vue2.0组件

vue2.0组件通信各种情况总结与实例分析 Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html <div id="app1"> <i>注意命名规定:仅在html内使用my-message</i> <child my-message="组件内部数据传递"></child&

SylixOS 之epoll异常分析

1. SylixOS epoll介绍 SylixOS为了兼容Linux的epoll,创建了epoll的兼容子系统,并支持了epoll的部分功能.SylixOS epoll兼容子系统是由select子系统模拟出来的,所以效率没有select高. 2. epoll异常分析 2.1epoll异常场景 在使用线程A创建AF_UNIX匿名套接字发送数据:线程B把套接字加入epoll监听,且设置属性为一次有效:线程C等待epoll事件产生,并读取套接字中的数据.如程序清单 2-1所示.           

vue2.0组件通信各种情况总结与实例分析

Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html <div id="app1"> <i>注意命名规定:仅在html内使用my-message</i> <child my-message="组件内部数据传递"></child> </div> //js

linux java.net.UnknownHostException异常

异常场景: 使用InetAddress.getLocalHost().getAddress(); 获取address byte数组.在windows上开发的时候,没有问题.部署到linux时报 java.net.UnknownHostException异常. 解决方案: 在linux的hosts文件中,增加如下配置 127.0.0.1 test2