4

我正在尝试使用 Agora.io 直播视频系统。但我在开发人员控制台中收到以下错误。

单击加入按钮后,我收到以下错误。

Agora-SDK [ERROR]: [713FF] Get server node failed [DYNAMIC_USE_STATIC_KEY] https://webrtc2-ap-web-1.agora.io/api/v1 DYNAMIC_USE_STATIC_KEY agora.js:161:41
Agora-SDK [INFO]: [713FF] Join failed: DYNAMIC_USE_STATIC_KEY agora.js:155:41
[ERROR] : join channel failed DYNAMIC_USE_STATIC_KEY live:1146:15

我得在agora管理面板上做个安排。我究竟做错了什么。

 var rand = <?php echo rand(1111111,9999999); ?>;
 var agoraAppId = 'API ID HERE'; // set app id
 var channelName = "stream_<?php echo $creatorUserID;?>_"+rand; // set channel name
// join a channel
function joinChannel() {
  var token = generateToken();
  var userID = 0; // set to null to auto generate uid on successfull connection

  // set the role
  client.setClientRole('host', function() {
    console.log('Client role set as host.');
  }, function(e) {
    console.log('setClientRole failed', e);
  });

  // client.join(token, 'allThingsRTCLiveStream', 0, function(uid) {
  client.join(token, channelName, userID, function(uid) {
      createCameraStream(uid, {});
      localStreams.uid = uid; // keep track of the stream uid  
      console.log('User ' + uid + ' joined channel successfully');
      $('#main_live_video').html('')
      $('#publishBtn').removeAttr('disabled');
      $('#publishBtn').text("Please Wait");
      $('#publishBtn').addClass('hidden');
      $('.end_vdo_call').removeClass('hidden');

      $.post(requestUrl + "?f=live", {stream_name: channelName}, function(data, textStatus, xhr) {
                    if (data.status == 200) {
                      $('#live_post_id').val(data.post_id);
                    }
                  });
  }, function(err) {
      console.log('[ERROR] : join channel failed', err);
  });
}
function generateToken() {
 return null; // TODO: add a token generation
}
4

1 回答 1

6

您收到的错误是因为您尝试使用启用了令牌身份验证的 AppID,但在加入频道时未传递令牌。

要解决此问题,您通常有以下三种选择:

  1. 创建一个新项目并生成一个新的 AppID。在 Agora 控制台中打开项目管理选项卡。单击屏幕左上角的“创建”按钮。在对话框中,确保选择底部选项。在此处输入图像描述

  2. 使用Agora 控制台中的项目管理选项卡为您的项目生成一个临时令牌(有效期 24 小时)。按着这些次序:

    • 选择生成临时令牌选项 在此处输入图像描述
    • 输入频道名称并生成令牌 在此处输入图像描述
    • generateToken使用您的令牌字符串更新函数,而不是返回 null。
function generateToken() {
  return null; // add a token string here
}
  1. 实现令牌服务器并生成动态令牌。更多详情请查看:
function generateToken() {
  return null; // add a token string here
}

第二个选项不适用于您的实现,因为您正在使用用户名生成频道名称并附加随机值。生成临时令牌时,您需要知道通道的名称。

于 2020-06-16T15:30:20.607 回答