2015-03-10 5 views
0

Я пытаюсь обнаружить потерю сети или нечистое отсоединение участника, а затем запустить событие таймаута после 30 секунд из разъединения. Я попробовал следующее в viewDidLoad, используя два устройства:PubNub iOS - presenceHeartbeatInterval не работает должным образом

PNConfiguration *config = [PNConfiguration configurationForOrigin:@"pubsub.pubnub.com" publishKey:@"myKey" subscribeKey:@"myKey" secretKey:@"myKey"]; 
[PubNub setClientIdentifier:_user[@"username"]]; 
config.presenceHeartbeatInterval = 30; 
[PubNub setConfiguration:config]; 
[PubNub connect]; 

Я установил одно из устройств в режим полета. таймаут запускается после ~ 320 секунд, который является значением по умолчанию. Кажется, что значениеHeartbeatInterval ничего не делало. Я попытался установить

config.presenceHeartbeatInterval = 6; 
config.presenceHeartbeatTimeout = 30; 

и когда я подписался на канал, событие тайм-аут срабатывает каждые 30с, даже когда устройство подключено к Интернету.

Кто-нибудь знает, как установить значение таймаута, чтобы событие тайм-аута запускалось после указанного значения, когда сеть потеряна/не изящна отключена?

+0

странно, это должно сработать ... пожалуйста, запустите нас по электронной почте по адресу [email protected], и мы будем рады помочь вам в устранении неполадок, пожалуйста, включите журнал iOS и версию клиента iOS, в которой вы находитесь. – Geremy

ответ

1

Попробуйте использовать последнюю версию клиента (3.7.9.3). Таймер присутствия в режиме ожидания будет срабатывать только в том случае, если клиент подписался на некоторые каналы. С вашим сервером конфигурации будет пинг с 6-секундным интервалом, чтобы сообщить ему максимальное время бездействия сердечного ритма, после чего сервер будет пнуть подписчиком по каналам.

+0

Работала после скачивания последней версии. Я использовал версию 3.7.3 – mbrmj

Смежные вопросы