IM
小卒曹阿瞒
这个作者很懒,什么都没留下…
展开
-
web端实现消息实时性有哪些方式
短轮询:基于http协议,客户端每隔一定时间与服务端建立http连接,无新消息就返回,有消息就把数据带回来。优点:好理解,实现简单缺点:隔的时间不好定,太长会影响实时性,太短就会对服务器压力大,浪费资源长轮询:同样也基于http协议,与短轮询不同的地方在于如果没有消息不是立刻就返回,反而会在服务端被hold住,直到超时(由服务端设置)或者有对应的消息产生。实现原理:通常的做...转载 2020-01-16 00:40:06 · 1010 阅读 · 0 评论 -
IM——直播互动场景
上面的存在一个问题是,在普通的聊天场景中,为了进行精准投递避免资源浪费,一般会维护一个中央的在线状态,在逻辑层在确定好投递的接收人后,通过这个在线状态查询对应接收人所在的网关机,然后只需要把消息投递给这台网关机就好了。但是对于直播互动场景来说,对于这个精准投递应该如何进行优化呢?首先,每一台网关机在启动时会订阅一个全局的消息队列;当用户进入直播间后,会在每台网关机的本机维护一...转载 2020-01-11 21:14:08 · 1411 阅读 · 0 评论 -
IM——分布式一致性:让你的消息支持多终端漫游
多终端漫游是指用户在任意一个设备登录后,都能获取到历史的聊天记录如何实现?需要两个前置条件1.通过设备维度的在线状态来实现 ,可以让IM服务端在收到消息后推送给接收方的多台设备,也推给发送方的其它登录设备。这样的话,就要求能够按照用户的设备维度来记录在线状态,这个其实也是支持多端登录的的一个前提2.通过离线消息存储来实现离线消息存储获取离线消息的时候是接收方或者...转载 2020-01-11 19:29:54 · 1050 阅读 · 1 评论 -
IM——四个重要特性
实时性实时性主要解决的问题是:当一条消息发出去后,我们的系统如何确保这条消息最快被接收人感知并获取到,并且尽量让耗费的资源较少。这里关键的几个点是:最快触达,且耗费资源少。下面我们来看一看,IM在追求 消息实时性的架构上,所经历过的几个代表性阶段。短轮询场景作为一问一答的请求响应模式孵化出来的短轮询模式,具有较低的迁移成本,比较容易落地。但劣势也很明显:1.为了提高实时性,...转载 2020-01-05 23:02:18 · 2896 阅读 · 0 评论 -
IM——为你的App,加上实时通信功能
如果为原有的业务系统增加实时消息模块,在不需要重建账号体系的前提下,整体上大概包括几块内容:消息存储一般来说,大部分即时消息系统为了便于查看历史消息或者用于暂存离线消息,都需要对消息进行服务端存储,因此,我们先来看一下,这些互动过程产生的消息在服务端该怎么存储或者暂存。消息索引和消息内容这里,以点对点消息的存储为例:点对点消息的参与方有两个:发送方和接收方。收发双发的历史消...转载 2020-01-05 01:07:38 · 812 阅读 · 0 评论 -
IM——基本系统架构
1.用户角度的聊天系统如果我们站在一个使用者的角度从直观体验上来看,一个简单的聊天系统大概由以下元素组成:用户账户,账号关系,联系人列表,消息,聊天会话。这个应该不难理解1.聊天的参与需要用户,所以需要有一个用户账号,用来给用户提供唯一标识,以及头像,昵称等可供设置的选项。2.账号和账号之间通过某些方式(比如加好友,互粉等)构成账号间的关系链3.你的好友列表或者聊天对象的列...转载 2020-01-04 19:35:21 · 6079 阅读 · 0 评论