默认
发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教关于IM支持多端登录情况下的离线消息存储和拉取问题
阅读(19641) | 评论(5 收藏 淘帖1 1
站内和其他的一些资料关于离线消息的存储的模式基本上都是:服务端下发判断用户是否在线,如在线直接下发,如不在线存离线。
但是如果是淘宝,京东这种,支持全平台在线的情况,如果一端(ios)另外一端(安卓)不在线。(还有可能,pc(包括mac+windows),mobile(包括安卓和ios),web N端同时在线的情况。)
这种情况,还需要判断用户是否在线再存离线吗?还是直接存离线就行了,等安卓(或其他端)上线时,再根据本地的时间戳/消息序列号上来拉?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 IM开发
上一篇:求教http的keep-alive依赖socket的keep-alive吗?下一篇:IM中想实现企业微信中群聊邀请新人时,附带选择的聊天记录功能

本帖已收录至以下技术专辑

推荐方案
评论 5

你仔细读下这篇《浅谈移动端IM的多点登陆和消息漫游原理》,看看能不能解决你的疑惑
引用:JackJiang 发表于 2022-07-29 14:52
你仔细读下这篇《浅谈移动端IM的多点登陆和消息漫游原理》,看看能不能解决你的疑惑

这个原理我明白,我疑惑是,安卓和ios这种都属于手机端,像京东,淘宝这类app,是可以支持安卓和ios同时在线的(同端同时在线,其实这篇文章很类似都属于多点登录),在这种情况下还需要去判断用户是否在线再存离线吗?做成直接存离线可不可行,或者有没有其他方案。很多产品在设计之初就没有考虑pc端,只考虑移动端,移动端又只能登陆一端,所以服务端判断不在线再存离线是可行的。
引用:frfr46467979 发表于 2022-07-29 15:03
这个原理我明白,我疑惑是,安卓和ios这种都属于手机端,像京东,淘宝这类app,是可以支持安卓和ios同时 ...

肯定要判断在线,不然没办法实时同步和漫游,多端其实是比较复杂的,别用着微信能这样就觉得很稀松平常的事
引用:JackJiang 发表于 2022-07-29 15:12
肯定要判断在线,不然没办法实时同步和漫游,多端其实是比较复杂的,别用着微信能这样就觉得很稀松平常的 ...

我的意思是,在下发消息之前(也可以下发之后),直接存离线,而不需要去判断是否离线,而在线的还是直接下发。
大部分文章单端的逻辑:服务端收到消息 - 判断是否在线 - 在线则推送,不在线存离线
多端的情况我想的逻辑:服务端收到消息 - 存离线 - 在线推送
我的这种想法是否可行?
引用:frfr46467979 发表于 2022-07-29 15:17
我的意思是,在下发消息之前(也可以下发之后),直接存离线,而不需要去判断是否离线,而在线的还是直接 ...

其实无论是你还是别的文章里的想法,都没有问题,主要是描述的不清楚,说白了,要做好多端,服务端应该得做一个全量的消息记录,所以,实际上也就不存在所谓的“离线消息”这个概念了,反正客户端离线后上线时,拿本地最后一条消息的时间戳去服务端跟全量消息对比就是了。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部