Quickblox iOS:在应用程序出现后台错误后连接到QBChat

时间:2015-11-04 21:34:45

标签: ios objective-c quickblox

目前正在使用Quickblox iOS SDK v2.4.6,但之前在早期版本中遇到此问题。

连接到QBChat:

[[QBChat instance] connectWithUser:self.qbUserForChatLogin];

连接用户:

-(QBUUser *)qbUserForChatLogin
{    
    QBUUser *user = [QBUUser user];
    user.ID = ... //setting correct ID here
    user.password = [QBSession currentSession].sessionDetails.token;
    return user;
}

我正在使用Facebook身份验证,因此请将会话令牌设置为密码,如下所示:http://quickblox.com/developers/Chat#Login_.2F_ID

因此,在应用程序启动和授权连接到QBChat工作正常后,甚至在应用程序进入后台并在几十分钟内返回前台后,app仍然连接到QBChat。但经过足够长的时间(可能是几个小时),当应用程序回到前台并尝试连接到我收到的QBC时

-(void)chatDidNotConnectWithError:(NSError *)error

错误代码401和说明Password not verified

我还检查会话令牌是否有效:

[QBSession currentSession].tokenValid

并且有效。

那我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

From the documentations: 默认情况下,当与服务器的连接丢失时,iOS SDK不会自动重新连接。你必须手动管理它。

但是有一种方法可以启用自动重新连接:

[QBSettings setAutoReconnectEnabled:YES];

因此,请使用此代码段来支持自动重新连接。