Quickblox 管理会话和召回?

Posted

技术标签:

【中文标题】Quickblox 管理会话和召回?【英文标题】:Quickblox manage session and recalling? 【发布时间】:2015-01-06 06:45:25 【问题描述】:

我正在使用 QuickBlox 库进行视频聊天。我该如何管理它的会话?因为当我从实时聊天活动转到下一个活动时,我刚刚失去了会话,因为它说“聊天无法初始化”,然后我必须再次创建会话才能进行通话。那么 quickblox 会话的生命周期是多少,我该如何管理它。

当我停止通话或转移到下一个活动并尝试回忆我无法做到这一点时,我也面临召回问题,实际上我尝试了不同的事情,所以每次我都会遇到不同的错误。因此,如果任何人有使用 QuickBlox 库的经验,都需要在这里获得帮助。

当我停止通话时,我会调用此函数。

private void stopCall() 

        //Toggle view show the smile view again

        //ToggleSmileView();

        try
        
            cancelCallTimer();

            if (videoChat != null) 
                videoChat.stopCall();
                videoChat = null;
            
            if (videoChannel != null) 
                videoChannel.close();
                videoChannel = null;
            

            sessionId = null;
        
        catch(Exception ex)
        
            ex.printStackTrace();
        
    

当我打电话时,我会调用这个函数

 private void call() 

    //toggle view 
    //ToggleSmileView();

    // get opponent
    //
    VideoChatApplication app = (VideoChatApplication)getApplication();
    opponent = new QBUser();
    opponent.setId((app.getCurrentUser().getId() == VideoChatApplication.FIRST_USER_ID ? VideoChatApplication.SECOND_USER_ID : VideoChatApplication.FIRST_USER_ID));

    // call
    //
    callTimer = new Timer();
    callTimer.schedule(new CancelCallTimerTask(), 30 * 1000);

    createSenderChannel();
    initVideoChat();

    if (videoChat != null) 
    
        videoChat.call(opponent, getCallType(), 3000);
        //toggleMicrophoneMute();
     
    else 
    
        logAndToast("Stop current chat before call");
    

【问题讨论】:

如果您使用的是 android SDK 或使用 REST API (?) 会有所帮助 我正在使用android sdk 你能用代码解释一下吗,你试过的,第二段不清楚 here 是一个使用 Quickblox 的示例聊天应用程序。会有帮助的 请检查编辑 【参考方案1】:

对于:quickblox 会话的生命周期以及我该如何管理它。

要验证您的应用程序,您必须设置有效的 auth_key 和 使用您的应用程序 auth_secret 生成签名并接收 用于向 QuickBlox API 发送请求的会话令牌

还有,

令牌的有效期为 2 小时。请注意它。如果 您将使用过期令牌执行查询 - 您将收到错误 所需的会话不存在。

来源:Authentication and Authorization Session Info

该部分适合创建会话的Android示例代码,

QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() 
    @Override
     public void onSuccess(QBSession session, Bundle params) 
        Log.i(TAG, "session created, token = " + session.getToken());
     
     @Override
     public void onError(List<String> errors) 

     
);

来源:Android developers documentation

我使用过 Android SDK,感觉它还需要一些工作,尤其是要达到与 ios SDK 和 REST API 相当的阶段。

尽管查看您的代码,您应该在创建新的QBUser 和相关的视频聊天通话之前使用getToken(),如果令牌已过期,只需创建一个新的。 我已经实现了类似的代码,不是视频聊天应用程序,但一般来说,如果需要重新创建会话,则在会话创建的onSuccess() 中编写函数。

仅供参考,对于多个,您可以尝试使用已给出的摘要检查错误,分类为4; ..developers/Errors

【讨论】:

这很有帮助,但这是我问题的一半答案 召回?当参与者停止通话并尝试再次通话时,其他参与者不接受通话 请把第二段解释清楚,我没明白你的意思 请查看***.com/questions/27819697/… 你能解释一下如何使用令牌继续会话吗?我正在使用 android sdk,并且像 http:api.quickbloz.session.json 这样的 api 没有直接暴露,因此我不能用每个 rest api 发送令牌,因为它的 quickblox jar 击中了这个并且没有直接暴露。我尝试使用createSessionWithExistanceToken 创建会话,但我创建了会话并且呼叫无法接收。请详细解释此答案

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

推荐系统的召回

【基础概念】准确率和召回率

一图看懂召回率和准确率

模型评估:精确率召回率准确率

精确率和召回率

多分类问题的准确率,召回率怎么计算