gpt4 book ai didi

ios - 如何在 Swift 中使用 AgoraRtcEngineKit 创建 channel 和服务器 token ?

转载 作者:行者123 更新时间:2023-12-01 21:58:17 25 4
gpt4 key购买 nike

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

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

根据文档:

  • 生成 token (或临时 token )后,客户端应使用 token 在 24 小时内加入 channel 。否则,你需要生成新 token (或临时 token )。

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

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

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 之后弄明白了.您只需部署一个 Heroku Dynamic Key 服务器,它位于 TokenServer-nodeJS 中。转到此部署 link并输入你各自的 Agora.io APP_IDAPP_CERTIFICATE .部署 token 服务器后,我们可以使用 HTTP get 请求获取 token 作为 JSON 格式的响应,然后您可以使用 SwiftyJSON 等框架进行解析。即,一旦服务器运行,您将下面的内容替换为您的实例 url 并使用此端点生成 token : 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 。

关于ios - 如何在 Swift 中使用 AgoraRtcEngineKit 创建 channel 和服务器 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60897903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com