默认

[已回复] 求教MobileIMSDK中IM离线消息处理方法

查看数: 42131 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-09-11 18:42

正文摘要:

请教一下,我在onTransBuffer_C2C_RealTimeSendFaild_CallBack方法中把离线消息保存起来 ,sendData()方法返回true,但是在客户端却收不到信息,如果我在调用sendData()方法前调用sleep()睡一会,客户端就可以接收 ...

评论

JackJiang 发表于 6 年前
先就你的代码来讨论:
因为客户端还没完成登陆逻辑(这个回调还没完成呢),你的服务端就开始sendData,肯定是收不到的。

再来说说你这样实现离线消息是否合理:
现在主流的移动端IM都是先把离线消息存储起来(存到DB或redis中),等到客户端登陆时再使用http来“拉”,因为使用了http这样的通用协议,无论是客户端还是服务端,代码都简单太多了,而且未来的性能负载、业务扩展都会容易多了。所以,虽然这样做是可以实现离线消息的发送,仩你应该反思一下你的实现是否是最佳实践。

另外,建议你有时间的话可以系统地看看以下几篇文章,对你的理解会有很大帮助:
IM消息送达保证机制实现(一):保证在线实时消息的可靠投递
IM消息送达保证机制实现(二):保证离线消息的可靠投递
如何保证IM实时消息的“时序性”与“一致性”?
一个低成本确保IM消息时序的方法探讨
IM单聊和群聊中的在线状态同步应该用“推”还是“拉”?
IM群聊消息如此复杂,如何保证不丢不重?
谈谈移动端 IM 开发中登录请求的优化
移动端IM登录时拉取数据如何作到省流量?
浅谈移动端IM的多点登陆和消息漫游原理
完全自已开发的IM该如何设计“失败重试”机制?

返回顶部