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

Posted

技术标签:

【中文标题】Quickblox iOS:在应用程序处于后台错误后连接到 QBChat【英文标题】:Quickblox iOS: connecting to QBChat after app was in background error 【发布时间】:2015-11-04 21:34:45 【问题描述】:

目前使用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 工作正常,即使在应用程序进入后台并在数十分钟后返回前台后,应用程序仍然连接到 QBChat。但是经过足够长的时间(可能是几个小时)后,当应用程序返回前台并尝试连接到 QBChat 时,我收到了

-(void)chatDidNotConnectWithError:(NSError *)error

带有错误代码401 和描述Password not verified

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

[QBSession currentSession].tokenValid

它是有效的。

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

【问题讨论】:

【参考方案1】:

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

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

[QBSettings setAutoReconnectEnabled:YES];

所以使用这段代码sn-p来支持自动重连。

【讨论】:

以上是关于Quickblox iOS:在应用程序处于后台错误后连接到 QBChat的主要内容,如果未能解决你的问题,请参考以下文章

当用户在 quickblox 的 ios 中离线时获取消息

使用 quickblox 和 IOS sdk 实现预定的推送通知

Quickblox + Swift 3.0 iOS SDK 错误:未找到应用程序和 QBConnectionZoneTypeProduction

QuickBlox IOS 会话过期续订

创建会话 IOS 时出现 Quickblox“错误时间戳”错误

iOS swift quickblox 集成