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 sdk 实现预定的推送通知
Quickblox + Swift 3.0 iOS SDK 错误:未找到应用程序和 QBConnectionZoneTypeProduction