我们的项目是一个即时通讯app,通讯采用的是socket.io,目前发现app切换到后台大概3分钟的样子就休眠了,socket.io自动断开,mui.ajax也无法访问数据,android和ios都存在此问题。目前的需求是,我们必须监听每条消息对方是否收到(接收者通过socket.io发送消息回执),如果没有收到回执则通过短信的方式发送消息。如果将app切换到后台3分钟后,对于接收者而言他仍然认为app是运行着的,但由于socket.io已断开无法进行回执而会收到短信,这是客户不能忍受的~~~
这应该是个比较普遍的问题,有谁解决了这个问题或者有好的思路的,欢迎留言。
5***@qq.com
- 发布:2017-01-23 10:14
- 更新:2020-03-27 08:45
- 阅读:4934
如何让app在后台保持运行,或者让socket.io在后台保持通讯
分类:HTML5+
4 个回复
5***@qq.com (作者)
手动置顶~
啸天
IOS 的后台只能运行三分钟,你可以通过设置后台定位的方式做到长久保活,如果你只是想发送消息,可以配合苹果 APNS 使用,离线时通过苹果服务器下发
其实这种即时通讯应用可以通过第三方推送SDK实现,比如 HBuilder 集成的个推、小米推送等等
5***@qq.com (作者)
试了个推发现很不稳定,从官网发起的推送都经常收不到,或者必须退出app再进才能收到。在我的应用场景中,用户收到消息后还必须要告诉服务器自己收到这条消息了,否则服务器会认为你没收到而发短信给你,加入个推没问题能稳定收到它透传过来的消息,又该怎么告诉服务器收到消息了呢~因此此时app已在后台太久,是没法向外发送数据了的!
2017-02-06 10:41
啸天
回复 5***@qq.com:退出APP再进才能收到的,请推送离线消息,至于你说的回执,可以在收到透传或者点击通知栏的时候通知服务器
2017-02-06 13:38
5***@qq.com (作者)
回复 啸天:收到透传或点击通知栏通过什么途径通知服务器?推送有相关支持么,此时程序的ajax是用不了的~~
2017-02-08 16:34
wen如故i
个推也会 三分钟之后 收不到吧,除非后台转前台,重新初始化 个推sdk。。但是需要的是 后台 接收消息,,并不是在前台时,接收
2017-04-28 13:06
d***@163.com
你的 APP 是如何使用socket.io的啊,,uniapp如何使用socket.io啊
virtualTurth - 人类的本质是复读机
同问,个推app进程杀掉了就收不到推送了