android - Agora.io 令牌问题 Android
问题描述
我们正在从 agora 提供的令牌服务器生成 agora 令牌,但令牌在生成后立即过期,它会抛出错误代码 109 的 DYNAMIC-KEY-EXPIRY,我尝试使用 SDK 中提供的 onRequestToken() 回调方法下面是代码片段
override fun onRequestToken() {
//this will be called when the token expires
//so generate new token and renew the existing token
runOnUiThread {
regenerateToken()
}
}
并从服务器获取另一个令牌并使用 mRtcEngine.renewToken(token) 更新令牌我们已经就此联系了 agora 团队但无法找到生成令牌的问题有时有效,我们有两个帐户一个是测试帐户,另一个是主帐户我们使用一个凭证,它可以工作一天左右,并且在我们需要每 2 天更改一次凭证并且新生成的令牌在生成后即将过期所以如果有人遇到同样的问题并且对此提供任何帮助,我们将不胜感激
解决方案
我们正在使用 agora 令牌服务器生成令牌,到期时间为 3600
const { RtcTokenBuilder, RtmTokenBuilder, RtcRole, RtmRole } = require('agora-access-token');
常量角色 = RtcRole.PUBLISHER;
常量过期时间InSeconds = 3600
const currentTimestamp = Math.floor(Date.now() / 1000)
const privilegeExpiredTs = currentTimestamp + expirationTimeInSeconds
const generateAuthTokenToInititateCall = async (channel, cb) => {
const token = RtcTokenBuilder.buildTokenWithUid(appID, appCertificate, channel, 0, role, privilegeExpiredTs);
cb({ "token": token, "channel": channel })
}
这是节点 js 代码片段
推荐阅读
- android - 在 FirebaseStore 中进行嵌套查询,因此第二个查询使用第一个查询的输出
- vulkan - Vulkan 中设备本地缓冲区的部分更新
- java - 有没有办法禁用获取 Hibernate 中列的整个值集?
- python - 模拟对登录所需 URL 的 CSRF 攻击
- sql - 左连接后合并列
- node.js - 如何防止服务器的响应直接显示在浏览器中?
- parsing - Dart - Flutter - Aqueduct:DateTime.parse() 的奇怪行为
- google-apps-script - 如何使用谷歌 Appscript 从所有工作表中收集数据
- php - 有没有办法获得相同值的唯一行
- css - 如何在此搜索框中显示更多结果