使用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会继续推送的消息,并且存储到本地

    推荐阅读