美文网首页iOS 问答集合
使用GCDAsyncSocket应用在后台能接受消息吗?

使用GCDAsyncSocket应用在后台能接受消息吗?

作者: 船长_ | 来源:发表于2018-05-09 20:55 被阅读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会继续推送的消息,并且存储到本地

    相关文章

      网友评论

        本文标题:使用GCDAsyncSocket应用在后台能接受消息吗?

        本文链接:https://www.haomeiwen.com/subject/geworftx.html