如何解决获取服务器节点失败[CANNOT_MEET_AREA_DEMAND] https://webrtc2-ap-web-2.agoraio.cn/api/v1
我可以使用agora.io中的临时令牌进行基本的视频通话,但是当我从服务器中创建令牌时,出现此错误。我正在使用NgxAgora数据包。我尝试设置区号,但是NgxAgora中没有此选项。 这是我的角度代码:
this.api.getmethod("appointment/gettoken/" + atob(this.acRouter.snapshot.params.id)).subscribe((data) => {
this.token = data['token']
this.client = this.ngxAgoraService.createClient({ mode: 'rtc',codec: 'h264' });
this.assignClientHandlers();
this.localStream = this.ngxAgoraService.createStream({ streamID: this.uid,audio: true,video: true,screen: false });
this.assignLocalStreamHandlers();
// Join and publish methods added in this step
this.initLocalStream(() => this.join(uid => this.publish(),error => console.error(error)));
})
并且我使用C#在Web api端使用此功能:
public string createagoratoken(string appointmentUid,DateTime appointmentDate,int appointmentId)
{
var tokenbuilder = new AgoraEntegration.Media.AccessToken(AgoraEntegration.AgoraEnums.AppEnums.appId,AgoraEntegration.AgoraEnums.AppEnums.appCertificate,appointmentUid,appointmentId.ToString());
appointmentDate = appointmentDate.AddMinutes(20);
Int32 unixTimestamp = (Int32)(appointmentDate.Subtract(new DateTime(1970,1,1))).TotalSeconds;
tokenbuilder.addPrivilege(AgoraEntegration.Media.Privileges.kJoinChannel,(uint)unixTimestamp);
tokenbuilder.addPrivilege(AgoraEntegration.Media.Privileges.kInvitePublishAudioStream,(uint)unixTimestamp);
tokenbuilder.addPrivilege(AgoraEntegration.Media.Privileges.kInvitePublishVideoStream,(uint)unixTimestamp);
string token = tokenbuilder.build();
return token;
}
我也将此库用于acces令牌 Github access token for C#
解决方法
CANNOT_MEET_AREA_DEMAND
通常在以下情况下出现:由于用户在所选连接区域之外,因此连接失败。例如,如果您将ClientConfig.areaCode
设置为[AgoraRTC.AREAS.EUROPE]
,并且用户尝试加入北美的频道,则会发生此错误。如果未显式设置ClientConfig.areaCode,则默认情况下,SDK会请求跨多个区域的服务器并选择最佳连接,因此当用户加入通道时,控制台日志可能会显示此错误。在这种情况下,您可以忽略该错误。
尝试将areaCode设置为GLOBAL:
this.rtc = AgoraRTC.createClient({
//
areaCode: ['GLOBAL']
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。