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

How do I create a channel and server token using AgoraRtcEngineKit in Swift?

我正在关注 Agora.io channel management guide 加入使用 AgoraRtcEngineKit 的频道 iOS。它声明我应该调用 AgoraRtcEngineKit class 的 createRtcChannel 来创建一个带有频道 ID 的 AgoraRtcChannel 对象。但是,AgoraRtcEngineKit 在Swift 中没有createRtcChannel 方法。另一种方法是我使用 Obj-C 代码,但这似乎有点老套。

其次,在 token generation reference 之后,我需要使用 RtcTokenBuilder 生成服务器令牌。它指出 "your token needs to be generated on your own server, hence you are required to first deploy a token generator on the server." 理想情况下,我可以在 Swift 中生成令牌,但源代码的唯一可用语言是 C++、Java、Python、PHP,Node.js,去,Ruby。我想我可以用 JavaScriptCore 做到这一点,但是,就像通道生成一样,这似乎不是最佳解决方案。

根据文档:

What is the standard way to generate a channel and token to join channel using AgoraRtcEngineKit in iOS Swift via Agora.io?

提前致谢!

我最终在 this guide on deploying a Dynamic Key Server. You need to simply deploy a Heroku Dynamic Key server, which is in the TokenServer-nodeJS. Go to this deployment link 之后弄明白了,并输入了你们各自的 Agora.io APP_IDAPP_CERTIFICATE。部署令牌服务器后,我们可以使用 HTTP get 请求获取令牌作为 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

 }

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