前エントリ iPhoneとsocket.ioサーバを常時接続させる2 からの続きです。 バックグラウンドで接続断が起きた場合の再接続処理を10分に1回実行されるsetKeepAliveTimeoutのタイミングではなく、即時(またはReachabilityが回復次第)に出来ないか調べてみます。 バックグラウンドでもRunLoopを回せるチャンスは? まずバックグラウンドにおいてRunLoopが回るタイミングを整理します。 voip接続が確立されている場合 setKeepAliveTimeoutが10分1回呼ばれるのでそのタイミングで10秒動く beginBackgroundTaskWithExpirationHandlerを呼ぶと10分だけRunLoopが動く 1についてはデータの受信をトリガとしてRunLoopが回りますが接続断時は当然回らなくなります。 2はvoip接続を回復できる唯一