如何使用setKeepAliveTimeout:handler - IOS?

New*_*bee 5 voip cocoa-touch timeout objective-c ios

我们正在开发一个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?
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ias 2

来自苹果的文档:

The minimum acceptable timeout value is 600 seconds.
Run Code Online (Sandbox Code Playgroud)

编辑您的评论

VoIP 连接是(几乎)正常的连接。即,如果您有传入数据,您的应用程序将在后台恢复执行。超时处理程序适用于想要 ping 另一端以避免超时的情况。TN 2277提供了更多信息。