2015-09-27 56 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

如果我解決了您的問題,請接受答案。 –