使用GCDAsyncSocket应用在后台能接受消息吗?
不能.
即使加上以下代码也不可以
[asyncSocket enableBackgroundingOnSocket]
GCDAsyncSocket文档注释:
* Note: Apple does not officially support backgrounding server sockets.
* That is, if your socket is accepting incoming connections, Apple does not officially support
* allowing iOS applications to accept incoming connections while an app is backgrounded.
大概意思:苹果是不支持应用在后台长连接接受消息
那么微信和QQ是怎么在后台接受消息呢?
以下是个人猜测
【使用GCDAsyncSocket应用在后台能接受消息吗?】后台推送消息,发现应用在后台,那么把这条或者多条消息以远程推送的形式推给App,当我们重新让应用在前台的时候,我们发现正在接受消息,也就是说远程推送过来的消息并没有存储到本地,只是作为提醒,打开App的时候,socket会继续推送的消息,并且存储到本地
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 陇上秋二|陇上秋二 罗敷媚
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 我们应该和什么样的人交朋友