声网Agora Web SDK无法接收Flutter应用音视频流问题咨询
排查步骤
1. 校验服务端Token生成参数一致性
- 首先确认生成Token时传入的App ID、App 证书和声网控制台申请的信息完全匹配,排除输入时的空格、大小写错误
- 重点核对频道名参数:移动端加入频道使用的频道名必须和生成Token时传入的频道名完全一致,注意大小写、特殊字符的编码差异,Web端对url编码类特殊字符的解析逻辑和移动端存在差异,测试阶段建议统一使用纯英文、数字、下划线组合的频道名,避免中文、空格、特殊符号
- 核对UID参数:如果生成的是绑定UID的Token,要确认移动端加入频道时使用的UID和生成对应Token时传入的UID完全一致;如果生成的是不绑定UID的通用Token(生成时传入UID为0),要确认所有端加入频道时都遵循相同的UID规则,不要出现一端绑定UID另一端不绑定的情况
2. 检查Token权限与版本匹配
- 你使用的
agora_rtc_engine: ^4.0.6对应声网RTC 4.x版本SDK,服务端生成Token时要选择RTC产品的Token生成逻辑,不要混淆为RTM、云端录制等其他产品的Token - 确认Token有效期设置:测试阶段可先将有效期设置为3600秒,排查有效期过短导致的中途权限失效问题
- 确认服务端使用的Token生成代码版本和4.x SDK匹配,不要使用3.x版本的Token生成逻辑,两个大版本的Token结构不兼容,会出现跨端权限异常
3. 排查Web端订阅逻辑
- 移动端之间通话正常说明移动端推流逻辑没有问题,优先排查Web端的订阅权限与回调处理
- 打印Web端的
onUserJoined回调日志,确认移动端加入频道时Web端可以正常捕获到对应UID的加入事件 - 打印Web端的
onUserPublished回调日志,确认收到移动端的流发布事件后,是否正确调用了subscribe方法订阅对应音视频流,同时检查控制台有没有抛出401、Token无效/过期类的权限错误
4. 对比校验Token字段
可以直接对服务端生成的Token和控制台生成的临时Token做base64解码,对比两个Token内部的App ID、频道名、UID、权限字段是否一致,字段存在差异的地方就是问题根源。
内容的提问来源于stack exchange,提问作者Benjamin Addai-Boateng
相关产品推荐
相关产品推荐

