Как создать канал и токен сервера, используя AgoraRtcEngineKit в Swift? - PullRequest
1 голос
/ 28 марта 2020

Я следую руководству по управлению каналами Agora.io для присоединения к каналу с помощью AgoraRtcEngineKit для iOS. В нем говорится, что я должен вызвать createRtcChannel класса AgoraRtcEngineKit, чтобы создать AgoraRtcChannel объект с идентификатором канала. Однако AgoraRtcEngineKit не имеет метода createRtcChannel в Swift. Альтернатива заключается в том, что я использую код Obj- C, но это выглядит немного странно.

Во-вторых, после ссылки на создание токена мне нужно сгенерировать токен сервера, используя RtcTokenBuilder. В нем говорится, что «ваш токен должен быть сгенерирован на вашем собственном сервере, поэтому вы должны сначала развернуть генератор токенов на сервере». В идеале я бы мог генерировать токен в Swift, но единственными доступными языками для исходного кода являются C ++, Java, Python, PHP, Node.js, Go, Ruby. Я предполагаю, что могу сделать это с помощью JavaScriptCore, но, как и в случае генерации каналов, это не кажется оптимальным решением.

Согласно документации:

  • После токен (или временный токен) генерируется, клиент должен использовать токен для подключения к каналу в течение 24 часов. В противном случае вам необходимо сгенерировать новый токен (или временный токен).

  • Срок действия токена (или временного токена) истекает через определенный период времени. Когда SDK уведомляет клиента о том, что срок действия токена истекает или истек с помощью обратных вызовов onTokenPrivilegeWillExpire или onTokenExpired, необходимо сгенерировать новый токен и вызвать метод renewToken.

  • токен кодирование использует стандартный подход HMAC / SHA1, а библиотеки доступны на распространенных серверных платформах разработки, таких как Node.js, Java, PHP, Python и C ++.

Каков стандартный способ создания канала и токена для присоединения к каналу с помощью AgoraRtcEngineKit в iOS Swift via Agora.io?

Заранее спасибо!

1 Ответ

0 голосов
/ 29 марта 2020

В конечном итоге я понял это, следуя этому руководству по развертыванию сервера ключей Dynami c . Вам нужно просто развернуть сервер ключей Heroku Dynami c, который находится на TokenServer- nodeJS. Go для этого развертывания ссылка и введите соответствующие Agora.io APP_ID и APP_CERTIFICATE. После развертывания токен-сервера мы можем использовать HTTP-запрос get для получения токена в качестве ответа в формате JSON, который затем можно проанализировать с помощью такой инфраструктуры, как Swifty JSON. А именно, когда сервер запущен, вы замените ниже 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 этого экземпляра, то есть channel и uid, которые могут быть установлены по мере необходимости для генерации уникального токена.

...