我正在遵循Agora.io频道管理指南,以使用适用于iOS的AgoraRtcEngineKit加入频道。它指出我应该调用createRtcChannel
AgoraRtcEngineKit类来创建AgoraRtcChannel
具有通道ID的对象。但是,AgoraRtcEngineKitcreateRtcChannel
在Swift中没有方法。另一种选择是,我使用Obj-C代码,但这似乎有点hacky。
其次,遵循令牌生成参考,我需要使用RtcTokenBuilder生成服务器令牌。它指出:“您的令牌需要在您自己的服务器上生成,因此需要您首先在服务器上部署令牌生成器。” 理想情况下,我可以在Swift中生成令牌,但是源代码唯一可用的语言是C ++,Java,Python,PHP,Node.js,Go,Ruby。我想我可以使用JavaScriptCore做到这一点,但是,与通道生成一样,这似乎不是最佳解决方案。
根据文档:
生成令牌(或临时令牌)后,客户端应使用令牌在24小时内加入频道。否则,您需要生成一个新令牌(或临时令牌)。
令牌(或临时令牌)在特定时间段后到期。当SDK通过onTokenPrivilegeWillExpire或onTokenExpired回调通知客户端令牌即将到期或已过期时,您需要生成一个新令牌并调用renewToken方法。
令牌编码使用标准的HMAC / SHA1方法,并且库可在常见的服务器端开发平台上使用,例如Node.js,Java,PHP,Python和C ++。
在iOS Swift中通过Agora.io使用AgoraRtcEngineKit生成通道和令牌以加入通道的标准方法是什么?
提前致谢!
我最终根据本指南部署了动态密钥服务器。您只需部署TokenServer-nodeJS中的Heroku动态密钥服务器即可。转到此部署链接,然后输入您各自的Agora.ioAPP_ID
和APP_CERTIFICATE
。部署令牌服务器后,我们可以使用HTTP get请求以JSON格式获取令牌作为响应,然后可以使用SwiftyJSON之类的框架进行解析。即,一旦服务器运行,您就在下面用实例URL替换并使用此端点生成令牌:https://<heroku url>/access_token?channel=test&uid=1234
使用此实例网址示例:
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中有两个参数,即channel
和和uid
,可以根据需要进行设置以生成唯一令牌。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句