gpt4 book ai didi

android - Quickblox 管理 session 和召回?

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:58 25 4
gpt4 key购买 nike

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

当停止通话或转移到下一个 Activity 并尝试记忆我无法做到这一点时,我也面临着召回的问题,实际上我尝试了不同的事情,所以每次我都会遇到不同的错误。因此,如果有人有使用 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");
}
}

最佳答案

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

To authenticate your application you have to set valid a auth_key and generate a signature using your application auth_secret and receive a session token which you should use to send requests to QuickBlox API

还有,

Expiration time for token is 2 hours. Please, be aware about it. If you will perform query with expired token - you will receive error Required session does not exist.

来源:Authentication and Authorization Session Info

该部分适合创建session的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(),如果 token 已过期,只需创建一个新的一个。
我已经实现了类似的代码,不是视频聊天应用程序,但是以一般方式,如果需要重新创建 session ,请将函数写入 session 创建的 onSuccess() 中。

仅供引用,对于多个的,你可以尝试根据已经给出的摘要进行错误检查,归类为4; ..developers/Errors

关于android - Quickblox 管理 session 和召回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com