默认
发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
一些Android的机型在后台会断开网络,那么IM的socket重连策略应该是怎么样的呢
阅读(63808) | 评论(5 收藏1 淘帖 1
1金币
做IM的App,遇到华为的一些机型,在手机进入熄屏状态后,长连接socket过一段时间后就断网了,但是用Api检测网络却显示网络是连着的,使用ping命令也可以成功,一般socket重连的策略会是怎么样的呢?会一直不断的重连吗?

最佳答案

查看完整内容

Android系统的进程保活(或者说网络保活)是个很糟心的问题,几乎所有搞IM的开发人员都会被这个烦。 比如小米的神隐模式,看看这个帖子里的讨论:http://www.52im.net/thread-354-1-1.html,华为的ROOM现在也跟小米一样有类似的机制。 你如果非得想自已尝试解决进程保活(或者说网终保活),可以看看这篇文章:http://www.52im.net/thread-438-1-1.html,不够用的话这里还有更多类似文章:http://www.52im.net/forum.php?mo ...
上一篇:MobileIMSDK的源码和lib里面的jar包不太一致的疑问下一篇:IM的App的Push推送和长连接的关系
推荐方案
评论 5
Android系统的进程保活(或者说网络保活)是个很糟心的问题,几乎所有搞IM的开发人员都会被这个烦。

比如小米的神隐模式,看看这个帖子里的讨论:http://www.52im.net/thread-354-1-1.html,华为的ROOM现在也跟小米一样有类似的机制。

你如果非得想自已尝试解决进程保活(或者说网终保活),可以看看这篇文章:http://www.52im.net/thread-438-1-1.html,不够用的话这里还有更多类似文章:http://www.52im.net/forum.php?mo ... &ctid=17&fromop=all

我个人建议应该顺应手机的技术机制,因为像小米和华为这样的手机,除非你进入了它的白名单(一般的APP主别想了,除非你能达到微信、手Q这种级别),要不然只能乖乖用它们自已的推送,小米和华为手机都有自已的推送服务(类似于iOS下的APNS这个东西:http://www.52im.net/thread-286-1-1.html)。如果你嫌自已集成不同的手机推送方案麻烦的话,就用像信鸽这样的第3方推送(我不是在给信鸽打广告,他们一毛钱没给过我。。),它们集成了不同的手机厂商推送(其实不用它们集成自已去实现也不会麻烦)。
搞android手机上的im或者推送的人,都是一波接着一波地要整这个保活机制,确实操蛋了点,可以先看看群主整理的微信它们怎么干的:http://www.52im.net/thread-209-1-1.html
签名: 秋天到了,终于凉快了
引用:JackJiang 发表于 2016-11-11 17:54
Android系统的进程保活(或者说网络保活)是个很糟心的问题,几乎所有搞IM的开发人员都会被这个烦。

比 ...

我有实现心跳机制,但是在华为的一些机型上,熄屏后一段时间后,socket recv就会超时或read == -1,心跳好像不管用了,这个时候会尝试重连,但是怎么都连接不上,我的app程序并没有被杀死啊,这个也是可以通过进程保活来进行吗?
引用:张小驰 发表于 2016-11-14 14:36
我有实现心跳机制,但是在华为的一些机型上,熄屏后一段时间后,socket recv就会超时或read == -1,心跳 ...

这跟小米的神隐模式是一个道理,系统的省电策略决定了不是你APP想在后台持续联网就能实现的,你查查华为的官方资料。
提示: 该帖被管理员或版主屏蔽
签名: 嘿嘿
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部