默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教IM系统如何实现多端推送与消息同步?
阅读(43161) | 评论(9 收藏1 淘帖1
本人才接触IM不久,基于netty搭建了一套IM系统,目前需要实现APP与PC多端消息推送与同步。如:PC发送一条消息同步推送到APP,看了 《浅谈移动端IM的多点登陆和消息漫游原理》 深有体会,明白了大致的思路与流程,但对于消息的存储(目前群聊消息使用读扩散,存一份的方式)、ACK确认机制不知道如何处理,望大佬们帮忙看看,出出主意。

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

标签:IM开发 求助
上一篇:求教IM中黑名单是否可以客户端判断? 服务端的话会不会影响异步性能?下一篇:求教web端IM聊天功能中的聊天历史记录应该怎样保存?

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

推荐方案
评论 9
我觉得你刚开始开发的话,可以把ack这个过程给省掉,先把功能都搞起来,后面再精益优化,一开始不要把事情做复杂,因为im的事情多数时间都是可大可小,往细了做就很复杂。
引用:JackJiang 发表于 2021-06-15 14:43
我觉得你刚开始开发的话,可以把ack这个过程给省掉,先把功能都搞起来,后面再精益优化,一开始不要把事情 ...

大佬,我也想省略,但是项目需要让实现ACK过程,而且还要我搞多端,目前把单聊群聊以及离线消息ACK应答都实现了。 现在就卡在了多端的问题上。。。
引用:YangYu 发表于 2021-06-15 14:56
大佬,我也想省略,但是项目需要让实现ACK过程,而且还要我搞多端,目前把单聊群聊以及离线消息ACK应答都 ...

你说的这个ack,是不是当多端都在线的情况下,消息推出去后,如何确保那个端确实收到了,是否这个意思?
引用:JackJiang 发表于 2021-06-15 15:29
你说的这个ack,是不是当多端都在线的情况下,消息推出去后,如何确保那个端确实收到了,是否这个意思?

是这个意思
引用:YangYu 发表于 2021-06-15 15:36
是这个意思

你的服务端必然有送达保证机制吧,推出去的消息不管是哪个端,都由你这个送达机制来保证(没有ack回来就表示需要重传,重传结束如果还没ack回来那就离线,离线时肯定要做幂等处理,必竟你同一个账号的多端,离线消息是不应该重复存的)。
引用:JackJiang 发表于 2021-06-15 15:43
你的服务端必然有送达保证机制吧,推出去的消息不管是哪个端,都由你这个送达机制来保证(没有ack回来就 ...

那多端消息是否存一份?还是说,有多少端就存几份消息?
引用:YangYu 发表于 2021-06-15 16:24
那多端消息是否存一份?还是说,有多少端就存几份消息?

存一份就可以,客户端保存最后的同步标识,拉取时增量拉取
引用:JackJiang 发表于 2021-06-15 15:43
你的服务端必然有送达保证机制吧,推出去的消息不管是哪个端,都由你这个送达机制来保证(没有ack回来就 ...

多端同步分两种情况把
1.离线后,此时哟消息,然后再上线,这个号处理,每次都拿本地的时间戳去服务器要就行了,数据存一份多端共享

2.在线的,就实时推,但是只推一个类似你有新的消息,端上收到后,再去服务器拉取,拉取的时候,带上本地的版本哈(类似微信,陌陌基于版本哈的消息机制,保证消息的不丢)
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部