默认
打赏 发表评论 25
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
DTIM 采用了会话维度划分:因为人和会话都是元数据,数据规模有限,消息数据近乎无限,消息归属于会话,会话与会话之间并无交集,消息处理时并没有跨单元的调用。因此,将不同的会话拆分到不同的单元,保障了消息数据仅在一个单元处理和持久化,不会产生跨单元的请求调用,进而实现了单元自封闭。


会话维度划分是指拉取消息的接口会固定在一个单元吗,是不是就是说在线消息的路由会跨单元进行路由,那么如何单元之间如何进行在线状态的同步呢
评论 25
同步服务按接收者维度写入各自的同步队列,同时查取当前用户设备在线状态,当用户在线时捞取队列中未同步的消息,通过接入层长连接推送到各端。当用户离线时,打包消息数据以及离线用户状态列表为 IM 通知事件,转发给通知服务的 PNS 模块,PNS 查询离线设备做三方厂商通道推送,至此一条消息的推送流程结束。

这个是怎么查询当前设备的在线状态的,是查redis吗?如果是一条群聊消息  群里有一万个人  那岂不是要查1000次?
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部