我正在做一个使用 GCDAsyncSocket、GCDAsyncUdpSocket 和 NSNetService 的 P2P VoIP 应用程序,以在网络上查找具有该应用程序的其他设备。我有一个 TCP 套接字来传输用户数据并协商 UDP 连接。
我需要在应用程序在后台时保持 NSNetService 服务发布 Bonjour,并保持一个打开的套接字以接收来自其他设备的请求。
按下 iPhone 的 HOME 键,socket 不断开但不响应,只有在重新打开应用程序时才向应用程序发送数据。通过阻塞屏幕,套接字被关闭。
关闭应用程序时要发布的 NSNetService。
我激活了后台 VoIP 应用程序、音频等选项。
我用了
[ asyncSocket performBlock : ^ {
[ asyncSocket enableBackgroundingOnSocket ];
}];
有人知道如何在 iPhone 锁定时保持 Socket 和 NSNetService 工作?