2014-01-21 1 views
3

Когда пользователь переходит на задний план, я выхожу из чата. Когда пользователь возвращается с фона, я снова регистрирую использование в чате.Завершение сеанса Quickblox на фоне. Как с этим справиться?

Это работает хорошо, но не каждый раз. Иногда, когда пользователь держит что приложение более 2 часов в фоновом режиме, сессия истекает, и это, кажется, не автоматически перепроверить, когда пользователь возвращается из фона, даже этот кусок кода:

[QBSettings enableSessionExpirationAutoHandler:YES]; 

Должен ли приложение автоматически обновляет вход в сеанс/QB с помощью enableSessionExpirationAutoHandler, даже когда он исходит из фона?

Есть ли другой способ справиться с истечением срока действия сеанса в фоновом режиме? Может кто-нибудь предложить мне некоторые идеи?

+0

Если ответ работал для вас, пожалуйста, отметьте это. – Xander

ответ

1

Любая сессия останется действительной в течение 2 часов после последнего запроса QuickBlox. Для проверки даты истечения срока использования данной сессии этот следующий фрагмент кода:

NSDate *sessionExpiratioDate = [QBBaseModule sharedModule].tokenExpirationDate; 

Проверить это руководство http://quickblox.com/developers/IOS#A_couple_of_words_about_Authentication_and_Authorization

Эта функция доступна с 1,8 IOS SDK

http://quickblox.com/developers/IOS#Framework_changelog:

+1

Спасибо, Игорь, но я хотел бы знать, если [QBSettings enableSessionExpirationAutoHandler: YES]; достаточно или мне нужно управлять истечением сеанса? –

+0

Вы можете использовать его, но это старая и недокументированная функция и может быть изменена в будущем. Я рекомендую вручную управлять истечением сеанса. Например, делайте это каждый раз в методе делегирования applicationWillEnterForeground –

+0

Спасибо. Сделаю это. –