请选择 进入手机版 | 继续访问电脑版

默认
发表评论 4
[已回复] MobileIMSDK在小米8下发送心跳的疑问求助
手机型号:MI 8 Lite
安卓版本:8.1
症状描述:用小米手机8登录显示成功,但是无法发送心跳,服务端确实没有收到心跳,但是保活自启动后心跳是能正常的。与本社区另一个帖子描述的问题相似:http://www.52im.net/thread-1697-1-3.html

安卓客户端日志:
20181008_android_log.zip (3 KB , 下载次数: 2 )

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

标签:MobileIMSDK
上一篇:开源轻量级IM框架 MobileIMSDK v3.3.1b181124 已发布!下一篇:[已回复] MobileIMSDK基于udp是如何保持长连接的呢

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

推荐方案
评论 4
这log里看不出来什么有价值信息。

为了排除业务代码的复杂性,我建议你在这台手机上这样来测试:

  • 1)下载我发布的MobileIMSDK的demo代码;
  • 2)部署好原版demo的服务端;
  • 3)在这台小米手机上运行原版Demo。

然后针对原版Demo再来看看现象,如果能复现,就把手机端的log和服务端的log全抓出来(一定要全)。
原版Demo没有其它复杂性,等于是回归到技术本身,所以这样会让问题的追查更简单。

你按我说的,来仔细研究研究。
签名: 祈祷下周能顺利备案完成。
已经解决。还是子线程在使用主线程的全局变量时,会产生不一致的情况。在KeepAliveDaemon类中,成员变量public long lastGetKeepAliveResponseFromServerTimstamp = 0;改为public static long lastGetKeepAliveResponseFromServerTimstamp = 0;,public Observer networkConnectionLostObserver = null;,改为public static Observer networkConnectionLostObserver = null;可以解决。参考文章:https://blog.csdn.net/u010228448 ... utm_medium=referral
引用:陈伟_IE667 发表于 2018-10-26 19:10
已经解决。还是子线程在使用主线程的全局变量时,会产生不一致的情况。在KeepAliveDaemon类中,成员变量pub ...

理论上你说的代码问题应该不存在,否则没有办法解释在其它手机上没有问题,而只在你这台小米手机上出现(你帖子里的引用的另一个楼主发的问题,他的问题实质是端口被占用,而不是你说的这个问题。)

我认为,此种情况还需深究。我不太确信我是否理解了你说的情况,你是否能拍个完整的视频,把从登陆开始到你所说的现象出现的整个过程拍出来我看看
签名: 祈祷下周能顺利备案完成。
这几天我也发现了这个问题,我出现的情况如下 : 1.打开app直接执行login的task则不会发送心跳包,  会卡在ds.connect,登陆时候可以正常发送,就是心跳发送的时候卡在ds.connect。 如果登陆成功,界面跳转则心跳正常。 2. 我的app有记住登陆功能,我打开app如果已经执行登陆,则我会直接发送login的task无效,我执行AutoReLogin类的start方法,并且延迟2秒执行,正常发送心跳。  我只在小米上开发的,其他机型未测试。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部