如何管理 Quick Blox 会话?

Posted

技术标签:

【中文标题】如何管理 Quick Blox 会话?【英文标题】:How to manage Quick Blox Session? 【发布时间】:2014-12-22 07:11:33 【问题描述】:

我有一个关于 Quick blox API 的问题。现在我正在使用下面的代码注册一个用户。

 [QBRequest createSessionWithSuccessBlock:^(QBResponse *response, QBASession *session) 
            // session created

            QBUUser *user = [QBUUser user];
            user.password = userPasswordTextField.text;
            user.login = userNameTextField.text;
            user.fullName = userRealNameTextField.text;
            user.email = userEmailTextField.text;

            // Registration sign up of User
            [QBRequest signUp:user successBlock:^(QBResponse *response, QBUUser *user) 

                [QBRequest createSessionWithSuccessBlock:^(QBResponse *response, QBASession *session) 
                    NSLog(@"checkingl registering");
                    [QBRequest userWithLogin:user.login successBlock:^(QBResponse *response, QBUUser *user) 
                        NSLog(@"checkingl updatingqb");

                     errorBlock:^(QBResponse *response) 
                        // Handle error
                    ];

                errorBlock:^(QBResponse *response) 
                    // Handle error
                ];

             errorBlock:^(QBResponse *response) 
                // Handle error here
                NSLog(@"error while signing up with QB");

                NSLog(@"fail sign Up %@",response);;

                [self showAlert:nil message:@"User with login that has already been taken" cancelButtonTitle:nil otherButtonTitle:@"OK"];


                return ;

            ];
         errorBlock:^(QBResponse *response) 
            // handle errors
            NSLog(@" error in creating session %@", response.error);
        ];

在上面的代码中,我首先创建一个会话并注册一个新用户,然后我是登录用户。在注册时,我没有在注册时登录 QuickBlox Chat 的用户,但是稍后当我在另一个模块中登录 Quick blox Chat 时,我仍然必须创建新会话或者我必须维护新会话。

【问题讨论】:

你在问什么开始聊天?? ***.com/questions/27388204/… saad 请检查我有类似的疑问。 Naeem 的答案似乎很完美。让我知道它是否不起作用我将从 repo 下载我的代码,并让你知道我是如何处理这个问题的。这和 Naeem 写的有点像 @007 如果答案对您有用,您可以接受。 【参考方案1】:

在最后一次向 QuickBlox 发出请求后,任何会话都将保持有效 2 小时。要检查会话的到期日期,请使用以下 sn-p 代码:

NSDate *sessionExpiratioDate = [QBBaseModule sharedModule].tokenExpirationDate;
NSDate *currentDate = [NSDate date];
NSTimeInterval interval = [currentDate timeIntervalSinceDate:tokenExpirationDate];
if(interval > 0)
  // recreate session here

查看this 指南。 This 功能自 1.8 ios SDK 起可用。

参考:Igor Khomenko

【讨论】:

谢谢 Naeem 但我看到了这个链接。好的,你的意思是稍后我必须使用这个会话,两个小时后我创建了新的 是的,你必须重新创建会话。 您好,我获取了 Quick blox 会话的剩余时间,如果会话时间存在,我也忽略了创建会话,但再次登录聊天时我的代码崩溃了。我收到这个 ar 2108443 2014-12-22 18:00:40.651 OClub[4587:5507] *** 由于未捕获的异常“BaseServiceException”而终止应用程序,原因:“您错过了授权调用。请在您的应用程序中插入以下代码 [QBAuth createSessionWithDelegate:self]; 嘿,谢谢 Naeem 实际上我已经看到了这个想法,但你建立了我的信心:D 很高兴我建立了您的信心。顺便说一句,你的问题解决了吗?

以上是关于如何管理 Quick Blox 会话?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Quick Blox 管理面板中查看更新值

如何在快速 blox 中管理在线和离线状态

Android 上的 Quickblox 视频通话

看Quick Audience 如何有效提升营销活动管理效率

看Quick Audience 如何有效提升营销活动管理效率

cookie 如何在 PHP 的会话管理中发挥作用/帮助?