ios - 如何使用 setKeepAliveTimeout :handler - IOS?

标签 ios objective-c cocoa-touch timeout voip

我们正在开发一个 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?
}

最佳答案

来自 Apple的文档:

The minimum acceptable timeout value is 600 seconds.

编辑关于您的评论

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

关于ios - 如何使用 setKeepAliveTimeout :handler - IOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061232/

相关文章:

objective-c - Youtube iPhone URL 方案

ios - 使用主体参数进行 API 调用

ios - 创建一个包含主题名称和投票的部分

ios - 比较时 NSDate 时间 MST 不正确

objective-c - 实例化从 xib 加载的 UIView 子类

objective-c - 给定过去的 NSDate 和重复间隔,计算从现在开始的下一个事件

ios - 如何在 UISplitViewController 中分配 MasterViewController 的子菜单的委托(delegate)

ios - 在外部声明时,变量会传递给推送的 ViewController

objective-c - 如何将 NSMutableArray 中的字符串按字母顺序排序?

iphone - 如何在 iPhone 应用程序中枚举和加载资源?