使用GCDAsyncSocket应用在后台能接受消息吗?
2018-05-09 本文已影响38人
船长_
不能.
即使加上以下代码也不可以
[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是怎么在后台接受消息呢?
以下是个人猜测
后台推送消息,发现应用在后台,那么把这条或者多条消息以远程推送的形式推给App,当我们重新让应用在前台的时候,我们发现正在接受消息,也就是说远程推送过来的消息并没有存储到本地,只是作为提醒,打开App的时候,socket会继续推送的消息,并且存储到本地