报错记录:声网AgoraRTCError can not subscribe xxx, this user is not in the channel

问题

vue3在使用声网开发web端的直播时,构建频道时报错:

AgoraRTCException: AgoraRTCError INVALID_REMOTE_USER: user is not in the channel

can not subscribe 1000004, this user is not in the channel

明明用户id是没错的,甚至在已经开发好的app端已经能看到web端的视频流了,却还是报这个错。

解决

markRaw: 标记一个对象,使其永远不会转换为 proxy。返回对象本身。意思就是使其不能成为一个响应式对象。

有些值不应该是响应式的,例如复杂的第三方类实例或 Vue 组件对象。

问题在于vue3在rtc = reactive({})时给rtc创建了代理,我们使用markRaw,让rtc.client失去响应式:

js 复制代码
// 原本
rtc.client = AgoraRTC.createClient({ mode: 'live', codec: 'vp8' })
// 加入markRaw
rtc.client = markRaw(AgoraRTC.createClient({ mode: 'live', codec: 'vp8' }))

问题解决~~~

相关推荐
码艺-Alimjan28 分钟前
Vue项目源码备份最佳实践:无视node_modules,打包体积仅2MB
前端·javascript·vue.js
隔窗听雨眠38 分钟前
esbuild构建工具简介:重新定义前端构建速度的极速打包器
前端
蔓越莓1 小时前
Webpack 常用 Loader +手写Loader
前端·面试
潍坊老登2 小时前
写了一个某音自动刷视频,通过大模型分析视频主题的Android应用
前端
蔓越莓2 小时前
性能优化:webpack打包层面优化
前端·面试
TJHHH.2 小时前
XSS-labs-master
前端·web安全·xss
风月说与山鬼2 小时前
十二、Vue插件
前端·vue.js
xixiaoyunya2 小时前
JavaScript 异步编程全解析:从回调地狱到 async/await 的演进之路
开发语言·javascript·ecmascript