5
我们正在研究一个VoIP应用程序,当我的应用程序变为后台时,我一直在尝试使用setKeepAliveTimeout:处理程序:保持连接处于活动状态。根据苹果的文件,他们要求至少600秒作为超时。其实我们保持较少的超时值,是否有可能以较少的时间处理?如何使用setKeepAliveTimeout:处理程序 - IOS?
如果超时,如何使用处理程序重置计时器或请求更多的时间,以便我可以保持我的连接一直活着(接收来电)?
下面是我在做什么...
- (void)applicationDidEnterBackground:(UIApplication *)application
{
BOOL backgroundAccepted = [[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{ [self backgroundHandler]; }];
if (backgroundAccepted)
{
NSLog(@"VOIP backgrounding accepted");
}
}
- (void)backgroundHandler {
NSLog(@"### -->VOIP backgrounding callback"); // What to do here to extend timeout?
}
你有任何想法如何处理VoIP应用程序的超时处理程序。我想保持连接到服务器并获得来电通知? – Newbee 2013-02-25 10:29:09
我们可以使用普通的C++套接字(不是客观的C socket-NSstream)作为VoIP连接吗?如果是的话,你能指出我正确的方向怎么做吗? – Newbee 2013-02-25 11:52:05
从[Apple's](http://developer.apple.com/library/ios/#documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/SocketsAndStreams/SocketsAndStreams.html)文档:“在iOS中,不鼓励POSIX网络”。但是,如果你想努力工作,你可以尝试一下。如果您只想避开ObjC并对C绑定感到满意,请使用[CFNetwork](https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html)。 – Matthias 2013-02-25 12:09:03