默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK的android版心跳实现是基于异步任务的么
阅读(40451) | 评论(2 收藏 淘帖1
android版sdk是基于asynctask的,但是android3.0之后,默认异步任务的实现是串行的,这样有可能出现异步任务有其他耗时处理的时候,心跳会发生延迟吧?

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

上一篇:[已解决] MobileIMSDK中的心跳发起顺序和送达保证机制下一篇:[已回复] 关于MobileIMSDK的登录验证疑问

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

推荐方案
评论 2
其实你考虑的挺深入的,不过实践证明,你应该是不用担心的,因为基于MobileIMSDK的RainbowChat前身,在14年的时候运营表明,我影像中从未出现过你担心的情况,不知这能否为你提供参考。

其实我可以从3个方面来回答你的问题:
1)异步实现是必然的,否则android 2.3及以后版本里,网络这一块直接会给崩溃掉;
2)基于第1点,肯定是要用异步,但用AsyncTask的目的也仅是希望能符合Android的最佳实践,因为MobileIMSDK的底层事件中,很可能需要通知界面等,所以也就用了它。但不排除可以用其它方法,只要解决异步+可能的UI通知的匹配就可以了;
3)从理论上讲,绝大多数情况多线程机制肯定有几率出现你担心的问题,但现实情况是,在即时通讯里,心跳这种东西,最极端的时候如果真的被系统的任务调度机制挂起了100毫秒、1秒。。。其实并没有太多影响,你可以基于真实场景考虑。本身心跳机制的时间间隔就是比过大量测试后的经验值,至于多或少个几秒、几毫秒,这不重要。更深入一点,回归到事情本质,你可以再好好理解下为何要存在心跳机制、心跳机制是为了解决什么问题,就更明白了。

另外,论坛里面还有关于微信及其它主流移动端IM的心跳的文章,你也可以了解下,比如这两篇文章:http://www.52im.net/thread-120-1-1.htmlhttp://www.52im.net/thread-121-1-1.html
引用:JackJiang 发表于 2016-03-18 13:59
其实你考虑的挺深入的,不过实践证明,你应该是不用担心的,因为基于MobileIMSDK的RainbowChat前身,在14 ...

没想过这个问题。群主说的有道理
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部