声网老版本channelKey升级到token的问题

我们的APP还在使用三年前的版本1.*,现在老版本的问题越来越多,想升级到最新的3.0版本。
看了一些说明文档,还有一些不理解,想咨询一下。

1.是否可以支持ChanelKey和Token的两种客户端同时在一个频道中互动?
关于这个问题,我在客户端这里尝试直接替换掉sdk,然后将一些api修改,如joinChannel等api。使用channelKey当做Token传入,可进入线上客户端ChannelKey的频道中,并且可以听到他们的发言,但是无法进行发言,这里是否可以通过一些调整,如服务器增加新token获取接口让新版客户端使用,来达到新老同时兼容。

2.如果问题1无法做到兼容,并且不强更的话,是否只能同时将老版和新版加入客户端,在适当时机控制切换?

3.新版token算法中的Role和客户端调用的setClientRole有什么关联?是否意味着客户端变更角色需要重新从服务器获取带有对应Role的token?如果是的话,那setClientRole的意义是什么?

以上问题望官方能回复一下。

你好,

1,不同版本的 SDK 支持的动态密钥不同,新版本是支持token了。因此,在选用校验方式前,请确认当前 SDK 的版本信息。而且不建议过老的版本和新版本来互通,可能会出现一些未知问题的,还是建议一边保障目前业务一边全部更新一下。

Agora SDK 支持 Token 的版本 支持 Channel Key 的版本 查看版本信息
Native SDK v2.1.0 及以上 v2.1.0 之前 getSdkVersion
Web SDK v2.4.0 及以上 v2.4.0 之前 AgoraRTC.VERSION
Gaming SDK v2.2.0 及以上 v2.2.0 之前 getSdkVersion
  • 如果你使用的 SDK 支持的动态密钥为 Channel Key,请参考 Channel Key 密钥说明
  • 如果你需要从老版本升级到支持 Token 的版本,请参考动态秘钥升级说明
  • 如果你使用的是 Agora Signaling SDK,请参考信令密钥说明
  • 如果你使用的是 Agora RTM SDK,请参考 RTM 密钥说明
    2,可以参考下上面动态密钥升级的链接。
    3,token里的role和其他参数可传可不传,role里不管填入哪个角色,所给到的权限是一样的。setClientRole可以中途用来切换角色,角色控制, 所以就以setClientRole为准

抱歉哦,我的第1个问题是是否可行,是否会出现未知问题我们这边会多加测试。正是强更损耗较大,所以才会问兼容问题。

目前我们测试是使用3.0客户端muteLocalAudioStream开始推流,旧版本客户端无法听到,而旧版本推送语音3.0版本可以听到。

问题1、2希望技术人员能解答一下,谢谢了


补充一点,新客户端muteLocalAudioStream可以成功触发老客户端didAudioMuted,但是却没有触发reportAudioVolumeIndicationOfSpeakers和firstRemoteAudioFrameOfUid,实际上是推送语音流成功又没有成功的状态。同时新版客户端又可以在reportAudioVolumeIndicationOfSpeakers得知自己的mic状态。

您使用的老版本具体是哪个版本,版本跨度太大不互通是有可能的。

上古版本 1.14.0

不好意思,这版本太老了,这些问题很难去排查原因了,虽然升级版本的工作量会很大。但是为了保证你们产品之后正常运行,还是得排期做掉了

好吧,我们还是再考虑一下吧,谢谢。

测试新版本使用token,老版本继续使用channelKey,目前在同频道中通讯正常,目前看来无需强更。

那就好