如何使用setKeepAliveTimeout:handler-IOS?
我们正在开发一个VoIP应用程序,当我的应用程序进入后台时,我一直在尝试使用setKeepAliveTimeout:handler:来保持连接的活动状态。根据苹果公司的文档,他们要求提供至少600秒的超时时间。实际上,我们保持的超时值较少,是否可以用较少的超时来处理 如果超时,如何使用处理程序重置计时器或请求更多时间,以便我可以保持连接始终处于活动状态(以接收来电) 这就是我正在做的如何使用setKeepAliveTimeout:handler-IOS?,ios,objective-c,cocoa-touch,timeout,voip,Ios,Objective C,Cocoa Touch,Timeout,Voip,我们正在开发一个VoIP应用程序,当我的应用程序进入后台时,我一直在尝试使用setKeepAliveTimeout:handler:来保持连接的活动状态。根据苹果公司的文档,他们要求提供至少600秒的超时时间。实际上,我们保持的超时值较少,是否可以用较少的超时来处理 如果超时,如何使用处理程序重置计时器或请求更多时间,以便我可以保持连接始终处于活动状态(以接收来电) 这就是我正在做的 - (void)applicationDidEnterBackground:(UIApplication *)a
- (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?
}
从的文档:
The minimum acceptable timeout value is 600 seconds.
编辑有关您的评论的
VoIP连接是(几乎)正常连接。也就是说,如果你有输入数据,你的应用程序将在后台继续执行。超时处理程序适用于希望ping另一端以避免超时的情况。您是否知道如何处理VoIP应用程序的超时处理程序。我想保持连接到服务器,并获得来电通知?我们可以使用普通的C++插座(不是客观C插座NStFrand)作为VoIP连接。如果是的话,你能给我指出正确的方向吗?来自文档:“在iOS中,不鼓励POSIX联网”。但是,如果你想走艰苦的道路,你可以试一试。如果您只想避免使用ObjC,并且对C绑定感到满意,请使用。