默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教关于IM中服务端发送给客户端的离线消息可靠性问题
阅读(37041) | 评论(8 收藏 淘帖2 1
服务端发送给客户端如何确保客户端一定会收到,或者客户端收不到,服务端也能知道客户端收不到消息的问题

最近在做消息的离线处理,主要应用场景是当客户端上线时,服务端拉取客户端的离线消息并发送,但是此时客户端又因未知原因掉线了,客户端的在线状态只是一瞬间,服务端也把消息发出去了,但是客户端没收到(因为离线了),但是同时服务端又把数据库的离线消息给删了,请问大佬们如何解决这个问题,谢谢

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

标签:IM开发
上一篇:我想问下,MobileIMSDK和openfire哪个比较好呢?下一篇:求教关于IM聊天系统中长连接的鉴权设计思路

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

推荐方案
评论 8
当客户端A发消息到客户端B时,客户端B不在线,那么此时就会把消息存到数据库,这个在sdk里面有给方法叫
onTransBuffer_C2C_RealTimeSendFaild_CallBack
然后当客户端B上线时我通过服务端的一个叫onUserLoginAction_CallBack的方法,把数据库的消息发往客户端B
然后删除数据库的内容
@JackJiang 所以说,我并不是客户端主地拉取离线消息,而且服务端检测到客户端上线,然后往数据库里面查有没有这个客户端的离线消息,有就往这个客户端发,没有就不做任何操作
引用:JackJiang 发表于 2019-08-06 16:05
你的意思是,客户端的离线消息不是通过http自已主动拉取,而你服务端通过im长连接通道推过来的?

是的,而且即使使用http还是有这个可靠性的问题吧?
引用:JackJiang 发表于 2019-08-06 16:14
首先,按照现在主流的技术实现,都是使用http拉,这个好处太多了,具体参考这篇文章《IM消息送达保证机制 ...

好的,非常感谢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部