【发布时间】:2012-08-31 17:28:29
【问题描述】:
我正在尝试实现一个 iOS VOIP 应用程序。
我正在使用 GCDAsyncSocket 在端口上侦听连接。我确实在 info.plist 中添加了所需的后台模式,并将 readstream 和 writestream 注册到 kcfNetworkServiceTypeVOIP。
我还添加了 KeepAliveTimeOutHandler 来唤醒应用程序。处理程序块只是将唤醒时间打印到标准输出。
只要应用程序在前台,新连接就会被接受,但当应用程序在后台时,应用程序不会被唤醒,并且当应用程序再次移动到前台时,所有尝试的连接都会发送到套接字。
我搜索了许多解决方案,但无法使其正常工作。
提前致谢。
【问题讨论】:
-
可能是因为苹果只是为你存储了连接的socket,所以通过这些sockets的消息可以到达,但是新的socket无法建立。我见过其他人也有这样的问题。
-
我也遇到了这个问题,我读了下面的博客但没有帮助:raywenderlich.com/29948/backgrounding-for-ios