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

塞尔吉奥·查尔斯

我正在遵循Agora.io频道管理指南,以使用适用于iOS的AgoraRtcEngineKit加入频道。它指出我应该调用createRtcChannelAgoraRtcEngineKit类来创建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_IDAPP_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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一开始如何在客户端和服务器中使用环境变量

来自分类Dev

如何在Dart中创建客户端和服务器端都使用的通用类

来自分类Dev

如何在blazor服务器应用中使用signalr从http客户端获取令牌?

来自分类Dev

如何在 Swift 中同时在本地和服务器上保存和存储数据?

来自分类Dev

如何使用C ++创建AVAHI客户端和服务器?

来自分类Dev

如何在Python中使用tulip / asyncio创建中继服务器?

来自分类Dev

如何在Python中使用tulip / asyncio创建中继服务器?

来自分类Dev

如何在Swift项目中使用iOS SDK插入Firebase服务器时间戳

来自分类Dev

如何在客户端和服务器中正确使用OpenTelemetry导出器和OpenTelemetry收集器?

来自分类Dev

如何在公会中显示在discord.js上创建成员和服务器图标

来自分类Dev

尝试在Swift中使用Json令牌从服务器获取身份验证

来自分类Dev

如何在Iron中使用服务器发送的事件?

来自分类Dev

如何在Fedora中使用特定的镜像服务器?

来自分类Dev

如何在远程Linux服务器中使用Maven?

来自分类Dev

如何在Laravel中使用Redis服务器检测?

来自分类Dev

如何在无服务器框架中使用 jquery?

来自分类Dev

如何在循环的服务器请求中使用 Phaser?

来自分类Dev

如何在 jenkins 服务器中使用 json 文件?

来自分类Dev

如何在服务器中使用 imap 接收 gmail?

来自分类Dev

如何在同一网站中同时使用Blazor客户端和服务器

来自分类Dev

如何在Java中使用RUDP创建简单的服务器客户端应用程序?

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

(C)在多线程客户端和服务器中使用互斥锁

来自分类Dev

如何在服务器上使承载令牌无效

来自分类Dev

如何在Python中使用套接字创建通道

来自分类Dev

如何在Python中使用套接字创建通道

来自分类Dev

如何在Java中与客户端和服务器共享枚举

来自分类Dev

如何在客户端和服务器之间同步大型列表

来自分类Dev

如何在客户端和服务器之间共享Javascript业务规则?

Related 相关文章

  1. 1

    一开始如何在客户端和服务器中使用环境变量

  2. 2

    如何在Dart中创建客户端和服务器端都使用的通用类

  3. 3

    如何在blazor服务器应用中使用signalr从http客户端获取令牌?

  4. 4

    如何在 Swift 中同时在本地和服务器上保存和存储数据?

  5. 5

    如何使用C ++创建AVAHI客户端和服务器?

  6. 6

    如何在Python中使用tulip / asyncio创建中继服务器?

  7. 7

    如何在Python中使用tulip / asyncio创建中继服务器?

  8. 8

    如何在Swift项目中使用iOS SDK插入Firebase服务器时间戳

  9. 9

    如何在客户端和服务器中正确使用OpenTelemetry导出器和OpenTelemetry收集器?

  10. 10

    如何在公会中显示在discord.js上创建成员和服务器图标

  11. 11

    尝试在Swift中使用Json令牌从服务器获取身份验证

  12. 12

    如何在Iron中使用服务器发送的事件?

  13. 13

    如何在Fedora中使用特定的镜像服务器?

  14. 14

    如何在远程Linux服务器中使用Maven?

  15. 15

    如何在Laravel中使用Redis服务器检测?

  16. 16

    如何在无服务器框架中使用 jquery?

  17. 17

    如何在循环的服务器请求中使用 Phaser?

  18. 18

    如何在 jenkins 服务器中使用 json 文件?

  19. 19

    如何在服务器中使用 imap 接收 gmail?

  20. 20

    如何在同一网站中同时使用Blazor客户端和服务器

  21. 21

    如何在Java中使用RUDP创建简单的服务器客户端应用程序?

  22. 22

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  23. 23

    (C)在多线程客户端和服务器中使用互斥锁

  24. 24

    如何在服务器上使承载令牌无效

  25. 25

    如何在Python中使用套接字创建通道

  26. 26

    如何在Python中使用套接字创建通道

  27. 27

    如何在Java中与客户端和服务器共享枚举

  28. 28

    如何在客户端和服务器之间同步大型列表

  29. 29

    如何在客户端和服务器之间共享Javascript业务规则?

热门标签

归档