2

我正在尝试使用 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 ERROR TypeError: o.default.debug is not a function”。你能帮我吗?服务器在 SSL 上运行。

更新 - 2018 年 11 月 20 日

我发现我需要使用动态密钥才能在服务器上进行视频聊天。因此,我使用了 Dynamickey Generation Java 代码并创建了令牌,并在尝试加入用户时收到“Agora-SDK [错误]:用户加入失败 [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]: 连接到 choose_server: https://ap-web-1.agora.io/api/v1 AgoraRTCSDK.min.js:2

11:24:34:282 Agora-SDK [DEBUG]: 连接choose_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]: 注册客户端 Channel 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+yyvT15bmaofNbWm6O7wAAAAAAA==

我的项目的 AppId 是1d82f0b2b87d445d81dfb2caf4f5e5b9

提前感谢您的帮助

4

4 回答 4

2

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

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

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

如果您UserId在令牌生成中指定 ,则需要重用该UserId。如果您将 aUserId作为请求的一部分传递,但随后尝试使用令牌加入频道并在加入中null作为 the传递UserId,它将失败。

如果您没有UserId在令牌生成中指定 a (令牌仍应生成) ,那么您可以在加入频道时使用 passnull作为它应该可以工作。UserId

于 2019-02-14T13:42:28.410 回答
2

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

"optimization": false

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

于 2018-11-26T09:25:25.460 回答
0

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

于 2019-12-24T07:10:17.770 回答
0

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

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

并且完美。这绝对对我有用。

于 2021-03-02T17:27:31.220 回答