iOS VOIP应用在后台不接受新的socket连接

3
我正在尝试实现一款iOS VOIP应用程序。
我正在使用GCDAsyncSocket监听一个端口以进行连接。 我已在info.plist中添加了所需的后台模式,并将读取流和写入流注册到kcfNetworkServiceTypeVOIP。
我还添加了KeepAliveTimeOutHandler来唤醒应用程序。该处理程序块只会将唤醒时间打印到stdout。
只要应用程序在前台,新的连接就会被接受,但当应用程序处于后台时,应用程序不会被唤醒,并且所有尝试的连接都会在应用程序再次进入前台时发送到套接字。
我搜索了许多解决方案,但无法使其正常工作。
提前感谢。

可能是因为苹果只为您存储连接的套接字,所以通过这些套接字的消息可以到达,但新的套接字无法建立。我曾经看到其他人也遇到了这样的问题。 - dustdn
我也遇到了这个问题,我阅读了下面的博客但没有得到帮助: http://www.raywenderlich.com/29948/backgrounding-for-ios - zolibra
1个回答

0

我不确定这是否对您仍有意义,但如果其他人阅读此问题,则可以参考 stackoverflow 上的其他类似问题,例如 这个链接。您只能拥有一个处于 NetworkServiceTypeVOIP 模式的套接字,否则两者都将无法正常工作,您的应用程序将无法唤醒并且无法接受新连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接