如何处理Quickblox会话到期?

时间:2017-01-02 17:42:31

标签: javascript quickblox

在quickblox中,session expires two hours after the last request。所以为了处理这种情况,我使用了代码

QB.init

并通过了config.on.sessionExpired = function(next, retry) { console.log("============session renewal") var user = self.get('user') QB.chat.disconnect() QB.createSession({ login: user.login, password: user.pass }, function(err, res) { if (res) { // save session token token = res.token; user.id = res.user_id self.get('user').token = token QB.chat.connect({ userId: user.id, password: user.pass }, function(err, roster) { // Do something }) } }) } QB.init(QBApp.appId, QBApp.authKey, QBApp.authSecret, config);

中的QB.chat.disconnect()
Unprocessable entity 422

这是更新会话的正确方法吗首先断开聊天,然后先创建新会话,然后再次连接聊天?

我不希望客户端知道会话已在quickblox中过期,他们必须刷新页面。聊天是门户网站的一部分。如果quickblox需要2-3秒来创建新的会话令牌然后连接到聊天,这很好。到那时,我可以显示一个加载器或一些消息。

我在没有{{1}}的情况下尝试了它但是它没有用,并且发送了{{1}}错误。

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我在QuickBlox文档中找到了一些解决方案

https://docs.quickblox.com/docs/js-authentication#session-expiration

QuickBlox JavaScript SDK将自动续订您的当前会话。无需手动调用createSession()方法。登录后,一个会话可以使用2个小时。会话期满后,任何请求方法都会先对其进行更新,然后再执行。

以及官方文档中的以下示例:

import sys
if sys.version_info < (3, 7):
    raise ImportError("I need python 3.7 or higher to run!")
exec('''
# your entire script
''')