如何在 Swift 中使用 AgoraRtcEngineKit 创建通道和服务器令牌?

Ser*_*les 2 api token ios swift agora.io

我正在按照 Agora.io频道管理指南使用 AgoraRtcEngineKit for iOS 加入频道。它指出我应该调用createRtcChannelAgoraRtcEngineKit 类来创建一个AgoraRtcChannel带有通道 ID的对象。但是,AgoraRtcEngineKitcreateRtcChannel在 Swift中没有方法。另一种选择是我使用 Obj-C 代码,但这似乎有点 hacky。

其次,按照令牌生成参考,我需要使用 RtcTokenBuilder 生成服务器令牌。它指出“您的令牌需要在您自己的服务器上生成,因此您需要先在服务器上部署一个令牌生成器。” 理想情况下,我将能够在 Swift 中生成令牌,但源代码唯一可用的语言是 C++、Java、Python、PHP、Node.js、Go、Ruby。我想我可以用 JavaScriptCore 做到这一点,但是,就像频道生成一样,这似乎不是一个最佳解决方案。

根据文档:

  • 生成令牌(或临时令牌)后,客户端应在24小时内使用令牌加入频道。否则,您需要生成一个新的令牌(或临时令牌)。

  • 令牌(或临时令牌)在一段时间后到期。当SDK通过onTokenPrivilegeWillExpire或onTokenExpired回调通知客户端token即将过期或已经过期时,需要生成新的token并调用renewToken方法。

  • 令牌编码使用标准的 HMAC/SHA1 方法,这些库可在常见的服务器端开发平台上使用,例如 Node.js、Java、PHP、Python 和 C++。

通过 Agora.io 在 iOS Swift 中使用 AgoraRtcEngineKit 生成频道和令牌以加入频道的标准方法是什么?

提前致谢!

Ser*_*les 6

我最终按照有关部署动态密钥服务器的指南找到了它。您只需要在 TokenServer-nodeJS 中部署一个 Heroku 动态密钥服务器。转到此部署链接并输入您各自的 Agora.ioAPP_IDAPP_CERTIFICATE. 部署令牌服务器后,我们可以使用 HTTP 获取请求以 JSON 格式获取令牌作为响应,然后您可以使用像 SwiftyJSON 这样的框架进行解析。即,一旦服务器运行,您将下面替换为您的实例 URL 并使用此端点生成令牌: https://<heroku url>/access_token?channel=test&uid=1234

使用此实例 url 示例:

let request = AF.request("https://matchr-token.herokuapp.com/access_token?channel=test&uid=1234")

request.responseJSON { (response) in

    guard let tokenDict = response.value as! [String : Any]? else { return }

    let token = tokenDict["token"] as! String

    // use the generated token here

 }
Run Code Online (Sandbox Code Playgroud)

这个实例url中有两个参数,即channeluid,可以根据需要设置,生成唯一的token。