Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用setKeepAliveTimeout:handler-IOS?_Ios_Objective C_Cocoa Touch_Timeout_Voip - Fatal编程技术网

如何使用setKeepAliveTimeout:handler-IOS?

如何使用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

我们正在开发一个VoIP应用程序,当我的应用程序进入后台时,我一直在尝试使用setKeepAliveTimeout:handler:来保持连接的活动状态。根据苹果公司的文档,他们要求提供至少600秒的超时时间。实际上,我们保持的超时值较少,是否可以用较少的超时来处理

如果超时,如何使用处理程序重置计时器或请求更多时间,以便我可以保持连接始终处于活动状态(以接收来电)

这就是我正在做的

- (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绑定感到满意,请使用。