5
我們正在研究一個VoIP應用程序,當我的應用程序變爲後臺時,我一直在嘗試使用setKeepAliveTimeout:處理程序:保持連接處於活動狀態。根據蘋果的文件,他們要求至少600秒作爲超時。其實我們保持較少的超時值,是否有可能以較少的時間處理?如何使用setKeepAliveTimeout:處理程序 - IOS?
如果超時,如何使用處理程序重置計時器或請求更多的時間,以便我可以保持我的連接一直活着(接收來電)?
下面是我在做什麼...
- (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應用程序的超時處理程序。我想保持連接到服務器並獲得來電通知? – Newbee 2013-02-25 10:29:09
我們可以使用普通的C++套接字(不是客觀的C socket-NSstream)作爲VoIP連接嗎?如果是的話,你能指出我正確的方向怎麼做嗎? – Newbee 2013-02-25 11:52:05
從[Apple's](http://developer.apple.com/library/ios/#documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/SocketsAndStreams/SocketsAndStreams.html)文檔:「在iOS中,不鼓勵POSIX網絡」。但是,如果你想努力工作,你可以嘗試一下。如果您只想避開ObjC並對C綁定感到滿意,請使用[CFNetwork](https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html)。 – Matthias 2013-02-25 12:09:03