Bir VoIP uygulaması üzerinde çalışıyoruz, uygulamam arka plana gittiğimde, setKeepAliveTimeout: işleyicisini kullanmaya çalışıyorum: bağlantıyı canlı tutmak için. Apple belgelerine göre, zaman aşımı olarak en az 600 saniye vermeyi isterler. Aslında daha az zaman aşımı değerini koruyoruz, daha az zaman aşımıyla başa çıkmak mümkün mü?setKeepAliveTimeout nasıl kullanılır: handler - IOS?
Ve zaman aşımına uğrarsa, zamanlayıcıyı sıfırlamak için işleyiciyi nasıl kullanabilirim veya bağlantımı devam ettirebilmem için daha fazla zaman ister (gelen çağrıları almak için)? İşte
Ben Apple belgelerine itibaren- (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?
}
VoIP uygulaması için zaman aşımı işleyicisinin nasıl işleneceği hakkında herhangi bir fikriniz var mı? Sunucuya bağlı kalmak ve gelen çağrı bildirimini almak istiyorum? – Newbee
VoIP bağlantıları olarak normal C++ yuvası (objektif C yuvası-NSstream değil) kullanabilir miyiz? Evet ise, bana nasıl doğru yönde yönlendirilir? – Newbee
[Apple'ın] 'dan (http://developer.apple.com/library/ios/#documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/SocketsAndStreams/SocketsAndStreams.html) belgelerden: "iOS'ta POSIX ağı önerilmez". Ancak, zor yoldan gitmek istiyorsanız, deneyebilirsiniz. Yalnızca ObjC'den kaçınmak ve C-bağlamaları ile mutlu olmak istiyorsanız, [CFNetwork] kullanın (https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html). – Matthias