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 管理会话和召回?的主要内容,如果未能解决你的问题,请参考以下文章