2015-09-27 107 views
4

我已经成功创建了quickblox会话,它在从一个页面移动到另一个页面时起作用。但一旦Web应用程序刷新,会话会丢失,我必须使用身份验证密钥等重新初始化。如何管理quickblox会话Javascript SDK

我试图持久化会话创建时获得的令牌,并使用此令牌初始化quickblox对象,但它会给出错误说我需要提供身份验证密钥等根据他们的文档应该已经工作。

我想知道是否有更有效的管理会话方式?我不喜欢每次刷新应用程序时重新初始化会话。任何指针将不胜感激。 我通常使用pouch db在本地存储中保存会话详细信息。该应用程序是一个角度js应用程序,使用ui路由器。我使用stateprovider的运行函数来初始化qb对象,但我首先检查是否存在现有的会话。

LcDb.get session().then(
    function(res){ 
    Qb.init(res.token); 
    }, 
    function(err){ 
    Var config = { 
       on: { 
       sessionExpired:function(next,retry){ 

       } 
       } 
      QB.init(app.Id,app.key,app.secret,config); 
       }) 
     QB.create session(function(err,result){ 
+0

它应该按照您描述的方式工作。您能否向我们提供更多关于您如何实施它的细节,代码? –

+0

我刚刚编辑我的文章,并包含一些代码。 –

+0

你的代码看起来不错,当你调用Qb.init(token)时会得到什么错误?请提供有关此错误的更多详细信息 –

回答

0

我在我的项目得到了同样的问题,我做的是,那首先,我检查QB.chat的存在与否,如果QB.chat不存在,那么,您必须重新初始化所有的东西,如(创建会话,登录,连接,设置所有处理程序)使用您的登录凭据(用户名和密码)。
我已经在angular js中实现了,所以我将这段代码添加到app.js中,运行函数中,每当这个调用状态发生改变时。
您必须以QB.chat在刷新页面时检查的方式实施。

希望这会帮助你。

+0

如果我解决了您的问题,请接受答案。 –