Chúng tôi đang làm việc trên một ứng dụng VoIP, khi ứng dụng của tôi chạy nền, tôi đã cố gắng sử dụng setKeepAliveTimeout: handler: để giữ cho kết nối còn sống. Theo tài liệu của Apple, họ yêu cầu cung cấp tối thiểu 600 giây như thời gian chờ. Trên thực tế chúng tôi đang duy trì giá trị thời gian chờ ít hơn, là nó có thể xử lý với ít thời gian hơn?Làm thế nào để sử dụng setKeepAliveTimeout: handler - IOS?
Và nếu hết thời gian truy cập, cách sử dụng trình xử lý để đặt lại hẹn giờ hoặc yêu cầu thêm thời gian để tôi có thể giữ kết nối luôn hoạt động (để nhận cuộc gọi đến)?
Đây là những gì tôi đang làm ...
- (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?
}
Bạn có biết cách xử lý trình xử lý thời gian chờ cho ứng dụng VoIP không. Tôi muốn kết nối với máy chủ và nhận thông báo cuộc gọi đến? – Newbee
Chúng ta có thể sử dụng ổ cắm C++ bình thường (không phải ổ C đích-NSstream) làm kết nối VoIP không. Nếu có, bạn có thể chỉ cho tôi đúng hướng làm thế nào để làm điều đó? – Newbee
Từ tài liệu [của Apple] (http://developer.apple.com/library/ios/#documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/SocketsAndStreams/SocketsAndStreams.html): "Trong iOS, mạng POSIX không được khuyến khích". Tuy nhiên, nếu bạn muốn đi một cách khó khăn, bạn có thể thử. Nếu bạn chỉ muốn tránh ObjC và hài lòng với các ràng buộc C, hãy sử dụng [CFNetwork] (https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html). – Matthias