默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 关于网络差时MobileIMSDK的会话处理情况请教
阅读(35959) | 评论(3 收藏 淘帖
您好!我们使用mobileImsdk 是作为我们android 硬件设备和app 之间的通讯工具,app可以远程向硬件发送控制指令,
1、android 硬件设备在向服务端发送im登陆时我们会更新该设备在服务端数据库的状态为在线
2、当会话终止回调sessionClosed时我们会将该设备在服务端数据库的状态为离线
3、现在问题是网络条件不好的情况下有可能也会触发调用sessionClosed 导致设备离线,再次登陆又在线,会如此反复
4、针对上面的问题我们有考虑过建立个线程专门管理,定时去检查掉线和离线,但是由于我们客户端设备数量会比较多,所以此方法并不理想
5、现在想请教下,有没通过改延时的方式放MobileIMSDKServce 在维护连接网络差的时候延迟调用sessionClosed或者有更好的建议,谢谢!

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK在小米6上一键清除内存后,再次登录成功又被踢下线下一篇:[已回复] MobileIMSDK的Android端发送消息偶尔崩溃
推荐方案
评论 3
移动网络的抖动是很正常的,在极端网络情况下,移动网络频繁掉线从代码角度看是无能为力的,但可以针对具体的业务逻辑来调整网络敏感度。

现实是网络不好的情况下,你们为何需要延时处理?目的是什么?
目的是不要让用户感觉一会在线一会下线
引用:michoi_dy 发表于 2018-01-18 13:32
目的是不要让用户感觉一会在线一会下线

建议你这样处理:

  • 1)尽量客观的评估一下网络情况,比如在这台手机上装ping工具,持续ping服务器看看网络延迟情况:到底网络是不是太烂;
  • 2)如果ping的结果是网络很好,那么就是代码哪里有问题,再来深入讨论;
  • 3)如果真是网络太烂,也一定要增加延迟的话,你可以把会话超时(心跳间隔设的长一点),详见:setSenseMode(ConfigEntity.SenseMode mode),注意看仔细文档说明!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部