微信小程序调用client.join,成功后的success方法为什么拿到的uid是undefined?

%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200630172529 %E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200630172807

参数填写有问题,多了一个参数。参考一下 demo 的写法:

        client.join(undefined, channel, uid, () => {
          Utils.log(`client join channel success`);
          //and get my stream publish url
          if (this.isBroadcaster()) {
            client.publish(url => {
              Utils.log(`client publish success`);
              resolve(url);
            }, e => {
              Utils.log(`client publish failed: ${e.code} ${e.reason}`);
              reject(e)
            });
          } else {
            resolve();
          }
        }, e => {
          Utils.log(`client join channel failed: ${e.code} ${e.reason}`);
          reject(e)
        })

demo 地址:https://github.com/AgoraIO/Agora-Miniapp-Tutorial

按照我截图上的,多了哪个参数?

不是这个问题,看这个官方文档, onSuccess函数会返回给你一个uid的

那个1代表的是我临时写的一个join需要的uid

箭头指的这个地方应该有一个文档上给出的回调成功后的uid

你改成 demo 的写法试下

一样,用了demo的写法,在success方法里面还是拿不到uid

麻烦拿下日志来看一下:

调用如下 API 实现保存和打开日志:

  • 保存日志:
AgoraMiniappSDK.LOG.onlog = (text) => {

Utils.log(text);

};
  • 打开日志:
AgoraMiniappSDK.LOG.setLogLevel(-1);

Utils.log 是我们 demo 里的一个方法;onlog 中的 text 是一条字符串,如果想要获取日志,需要自己将 text 保存写在一个文件中,然后将该文件提供给我们。

"Tue Jun 30 2020 20:09:58 GMT+0800 (中国标准时间) [DEBUG]: ",“From choose server”,{“data”:{“sid”:“5D852A2B2A4B40B3AC5E1F8E5D9DEC93”,“ts”:1593518998,“cname”:“1111”,“requestId”:1,“vid”:318545,“serverTs”:1593518998238,“code”:200,“reason”:“success”,“workerToken”:“006758bb3febdf4447aa82b7f3ca966f706IACbJnFNe0vvimp/9zgJQcN4QWbwW1D5EFqoPrHBaYWMBPfI+dsAAAAAEACuyF2WFn38XgEAAQCWuCJf”,“servers”:[{“address”:“120.92.137.21”,“ws”:7000},{“address”:“120.92.132.6”,“ws”:7000},{“address”:“120.131.1.227”,“ws”:7000}],“extension”:{“resolution”:“300500"}},“header”:{“Server”:“CLOUD ELB 1.0.0”,“Date”:“Tue, 30 Jun 2020 12:09:59 GMT”,“Content-Type”:“application/json; charset=utf-8”,“Content-Length”:“449”,“Connection”:“keep-alive”,“X-Powered-By”:“Express”,“Access-Control-Allow-Origin”:"”,“Access-Control-Allow-Methods”:“GET, POST, OPTIONS, PUT, PATCH, DELETE”,“Access-Control-Allow-Headers”:“X-Requested-With,content-type”,“ETag”:“W/“1c1-gZx5tJ/j/DahHJtwVf2TbMw2lMg””},“statusCode”:200,“cookies”:[],“errMsg”:“request:ok”}

是这个吗

是的,但是为啥日志里没有 join 的记录。。是没拿全吗?

[“Tue Jun 30 2020 20:12:23 GMT+0800 (中国标准时间) [DEBUG]: “,“Report succcess: “,{“uri”:8000,“miniappSession”:{“header”:{“sid”:“32B6474EC5AA4BAE9DAB0F2EB6EFAA5B”,“cname”:””,“cid”:null,“lts”:1593519143569,“ip”:null,“uid”:null,“success”:true,“elapse”:0,“peer”:null},“appid”:“758bb3febdf4447aa82b7f3ca966f706”,“ver”:“2.4.3”,“details”:”{“seq”:0}”},“miniappJoinChooseServer”:null,“miniappConnectWebSocket”:null,“miniappJoin”:null,“miniappPublish”:null,“miniappUnpublish”:null,“miniappSubscribe”:null,“miniappUnsubscribe”:null,“miniappLeave”:null,“miniappServerEvent”:null,“miniappPusherState”:null,“miniappPlayerState”:null}]

["Tue Jun 30 2020 20:12:23 GMT+0800 (中国标准时间) [DEBUG]: ","send to woker: ",{“appId”:“758bb3febdf4447aa82b7f3ca966f706”,“cname”:“1111”,“uid”:“626028”,“sid”:“32B6474EC5AA4BAE9DAB0F2EB6EFAA5B”,“sdkVersion”:“1.1.0”,“seq”:2,“requestId”:3,“ts”:1593519143,“clientRequest”:{“action”:“join”,“role”:“broadcaster”,“appId”:“758bb3febdf4447aa82b7f3ca966f706”,“key_vocs”:“006758bb3febdf4447aa82b7f3ca966f706IADzZ0o8a80KkvLFXhXpVggpW5dB2bJ66ryVy4lFom0tUvfI+dsAAAAAEAAmCN+4KFr8XgEAAQAnWvxe”,“key_vos”:“006758bb3febdf4447aa82b7f3ca966f706IADzZ0o8a80KkvLFXhXpVggpW5dB2bJ66ryVy4lFom0tUvfI+dsAAAAAEAAmCN+4KFr8XgEAAQAnWvxe”,“channel_name”:“1111”,“uid”:“626028”}}]

请问找到问题了吗?

这个问题有点奇怪,从后台数据来看确实加入频道成功了。你把控制台的日志也保存下来,然后提供一下吧。

控制台的日志?我之前给的那些不算吗?:joy:

%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200701105804

%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200701110001

我本地测试是没有问题的