IM 系统中,保证消息的可靠投递主要体现在两方面,一是消息的不丢失,二是消息的不重复。 一、消息不丢失 消息丢失的原因 首先看一下发送消息的流程,如下图所示: 图片来源于《即时消息技术剖析与实战》第 04 讲 用户 A 发出的消息,先到达IM服务端(步骤1),由服务端暂存(步骤 ...
假设有以下突发意外情况: 用户进入信号不好的地方,手机没有网络信号了 上网的路由器突然掉线了 这个时候,比如微信发消息,消息就会转圈圈,甚至变成红色叹号 上面情况都会导致 长连接 不可用。 我们知道,为了让消息能更加实时 可靠 快速地触达到接收方,大部分 IM 系统会通过 长连接 的方式来建立收发双方的通信通道,长连接一旦建立,就一直存在,除非网络被中断。 有了这基于 TCP 长连接的通信协议,在 ...
2020-02-01 15:22 4 983 推荐指数:
IM 系统中,保证消息的可靠投递主要体现在两方面,一是消息的不丢失,二是消息的不重复。 一、消息不丢失 消息丢失的原因 首先看一下发送消息的流程,如下图所示: 图片来源于《即时消息技术剖析与实战》第 04 讲 用户 A 发出的消息,先到达IM服务端(步骤1),由服务端暂存(步骤 ...
IM 技术经历过几次迭代升级,如图所示: 从简单、低效的短轮询逐步升级到相对效率可控的长轮询; 全双工的 Websocket 彻底解决了服务端的推送问题; 基于 TCP 长连接衍生的 IM 协议,能够实现服务端的主动推送。 一、基于HTTP协议的短轮询与长连接 ...
在消息产生、流转的各个环节中,需要保证消息传输安全性、消息存储安全性、消息内容安全性。 一、消息传输安全性 消息传输的重要防范点有两个,一是访问入口安全,二是传输链路安全。 1.HttpDNS保证访问入口安全 访问入口指的是即时消息服务中提供的一个公网的接入服务,作为用户收发消息的出入口 ...
一、什么是消息一致性 消息一致性指的是消息的时序一致性,即消息收发的一致性。如果不能保证时序一致性,就会造成聊天语义不连贯,引起误会。 对于点对点的聊天场景,时序一致性保证接收方的接收顺序和发送方的发出顺序一致;对于群聊场景,时序一致性保证所有接收人看到的消息展现顺序一致。 二、消息一致性 ...
一、什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录。如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年。 二、多终端漫游的实现 支持消息多终端漫游一般需要两个条件: 设备在线状态 离线 ...
一、什么是消息未读 消息未读包括 会话未读和 总未读。前者指的是当前用户和某一聊天方的未读消息数,后者指的是当前用户的所有未读消息数,也就是所有会话未读的和。比如用户A收到用户B的2条消息,还收到用户C的3条消息,则用户A与B的会话未读数是2,用户A与C ...
一、IM的应用场景 聊天、直播、在线客服、物联网等所有需要 实时互动、高实时性的场景,都需要应用到 IM 技术。 图片来源于《即时消息技术剖析与实战》开篇词 除了上面提到的聊天、直播互动、物联网等这些场景,生活中接触到的联机游戏、视频会议、在线协作等场景 ...
一、IM 系统的高并发场景 IM 系统中,高并发多见于直播互动场景。比如直播间,在直播过程中,观众会给主播打赏、送礼、发送弹幕等,尤其是明星直播间,几十万、上百万人的规模一点也不稀奇。近期随着武汉新型肺炎疫情的蔓延,很多教育机构也提供了“停课不停学”的在线直播教学服务,也是一大直播互动场景 ...