在生产服务器上运行Agora视频时出错,在本地工作

时间:2018-11-14 09:05:22

标签: video angular6 agora.io

我正在尝试使用Angular 6和Agora Web v2.50 SDK创建视频聊天。我按照此链接上的教程进行操作, https://medium.com/@Anderson7301/building-a-video-chat-app-with-agora-and-angular-6-858d72b6fa0d 我能够在本地计算机上成功实现此功能,但是当我尝试在服务器上运行它时,出现“ main.c71419ff14e542f66f51.js:1错误TypeError:o.default.debug不是函数”。 你能帮我吗服务器正在SSL上运行。

更新-2018年11月20日

我发现我需要使用动态密钥来使视频聊天在服务器上正常工作。因此,我使用了Dynamickey Generation Java代码并创建了令牌,并尝试加入用户时,我遇到“ Agora-SDK [ERROR]:用户加入失败[ERR_NO_AUTHORIZED]”的消息。这是我的角度应用程序中的日志。

11:24:34:202 Agora-SDK [INFO]:创建客户端,模式:互操作编解码器:vp8 AgoraRTCSDK.min.js:2

11:24:34:215 Agora-SDK [INFO]:正在初始化AgoraRTC客户端,appId:1d82f0b2b87d445d81dfb2caf4f5e5b9。 AgoraRTCSDK.min.js:2

11:24:34:264 Agora-SDK [INFO]:正在初始化AgoraRTC客户端,appId:1d82f0b2b87d445d81dfb2caf4f5e5b9。

active.component.ts:649 AgoraRTC客户端已初始化 AgoraRTCSDK.min.js:2

11:24:34:272 Agora-SDK [DEBUG]:连接到choice_server:https://ap-web-1.agora.io/api/v1 AgoraRTCSDK.min.js:2

11:24:34:282 Agora-SDK [DEBUG]:连接到choice_server:https://ap-web-2.agoraio.cn/api/v1 AgoraRTCSDK.min.js:2

11:24:34:951 Agora-SDK [DEBUG]:获取网关地址:(3)[[webrtc-159-117-159-4.agora.io:5875“,” webrtc-128-1- 33-131.agora.io:5866"、"webrtc-159-117-159-3.agora.io:5870“]] AgoraRTCSDK.min.js:2

11:24:34:957 Agora-SDK [INFO]:加入频道:1000 AgoraRTCSDK.min.js:2 11:24:34:964 Agora-SDK [DEBUG]:注册客户端通道1000 Uid 1587154302 AgoraRTCSDK.min.js:2

11:24:34:973 Agora-SDK [DEBUG]:开始连接:webrtc-159-117-159-4.agora.io:5875 AgoraRTCSDK.min.js:2

11:24:35:131 Agora-SDK [DEBUG]:websockect已打开:webrtc-159-117-159-4.agora.io:5875 AgoraRTCSDK.min.js:2

11:24:35:235 Agora-SDK [DEBUG]:已连接到网关服务器 AgoraRTCSDK.min.js:2

11:24:39:336 Agora-SDK [错误]:用户加入失败[ERR_NO_AUTHORIZED]

生成的动态令牌为 005AQAoAEY5MDBDNERFRkMxNzdDMkJGRjc5QUY5NDY2QTVEMDYzRTY4QTJCMDEQAB2C8LK4fURdgd + yyvT15bmaofNbWm6O7wAAAAAAAA ==

我的项目的AppId为 1d82f0b2b87d445d81dfb2caf4f5e5b9

感谢您的提前帮助

4 个答案:

答案 0 :(得分:0)

我也有同样的问题 TypeError: o.default.debug在Angular生产版本中运行时。看来Agora库不能与Angular CLI在生产版本中使用的JS缩小器配合使用。 到目前为止,我提出的唯一解决方法是设置

"optimization": false

在angular.json中,但这肯定是一个非常糟糕的解决方法。

答案 1 :(得分:0)

您遇到的问题与用户身份验证有关。如果禁用令牌,该项目是否有效?

当您向令牌服务器发出生成访问令牌的请求时,您是否在传递UserId?尝试加入频道时使用的是同一个UserId,还是使用自动生成?

我问的原因是因为在我自己最近对Agora.io的令牌服务器进行的测试中,我注意到您可以生成带有或不带有UserId的令牌。

如果您在令牌生成中指定UserId,则需要重用该UserId。如果您在请求中传递了UserId,但是尝试使用令牌加入通道,并在加入中以null的身份传递UserId,则会失败。

如果在令牌生成中未指定UserId(令牌仍应生成),则可以将通行证null用作UserId加入频道时,它应该可以正常工作。

答案 2 :(得分:0)

生成10位数的随机用户ID,并将其传递给索引代码,并使用相同的用户ID生成令牌。您一定会加入频道

答案 3 :(得分:0)

好吧,就我而言,我使用 Laravel 在 php 中实现了令牌服务器,从 H Virginia Singh 那里得到了答案

$uid = (int) mt_rand(1000000000,9999999999);

而且很完美。这绝对对我有用。