2013-02-25 33 views
5

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? 
} 

Trả lời

2

Từ Apple 's tài liệu:

The minimum acceptable timeout value is 600 seconds. 

EDIT về nhận xét của bạn

kết nối

Một VoIP là một (gần) kết nối bình thường. Tức là, nếu bạn có dữ liệu đang chờ, ứng dụng của bạn sẽ tiếp tục thực hiện trong nền. Trình xử lý thời gian chờ là dành cho trường hợp bạn muốn ping phía bên kia để tránh thời gian chờ tại đó. Thêm một chút thông tin cung cấp cho TN 2277.

+0

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

+0

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

+1

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

Các vấn đề liên quan