我尝试检测参与者的网络丢失或非正常断开连接,然后在断开连接30秒后触发超时事件。我在viewDidLoad中使用两个设备尝试了以下内容:
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];
我将其中一个设备设置为飞行模式。在~320s之后触发超时,这是默认值。似乎presenceHeartbeatInterval值没有做任何事情。我试着设置
config.presenceHeartbeatInterval = 6;
config.presenceHeartbeatTimeout = 30;
一旦我订阅了频道,即使设备连接到互联网,也会每30秒触发一次超时事件。
有没有人知道如何设置超时值,以便在网络丢失/非正常连接时指定的值之后触发超时事件?
答案 0 :(得分:1)
尝试使用最新的客户端版本( 3.7.9.3 )。仅当客户端在某些频道上订阅时,才会激活状态心跳计时器。使用您的配置服务器将以6秒的间隔进行操作,以告知他心跳不活动的最长时间,之后服务器将从通道中启动订阅者。