agora.io Пользователи Swift не могут подключаться к одному и тому же каналу

#swift #agora.io

Вопрос:

У меня есть учетная запись agora на Android, и она отлично работает . Используя одну и ту же учетную запись для ios с последней версией sdk, я могу заставить пользователей присоединиться к a chnnael с одним и тем же идентификатором, но оба пользователя никогда не подключаются, нет обратного вызова, когда другой пользователь входит в систему, и нет голоса (удалось заставить его работать в первый раз ?)

импорт основы импорт AgoraRtcKit

класс AgoraViewController: UIViewController {

 var agoraKit: AgoraRtcEngineKit?
var agoraDelegate: AgoraRtcEngineDelegate?

override func viewDidLoad() {
    super.viewDidLoad()
    initializeAgoraEngine()
    joinChannel()
}

override func viewWillDisappear(_ animated: Bool) {
    leaveChannel()
    destroyInstance()
}

func initializeAgoraEngine() {
    agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: "Valid Id i can give if needed", delegate: agoraDelegate)
}

func joinChannel() {
    let result = agoraKit?.joinChannel(byToken: "Token", channelId: "TestChannel2", info: nil, uid: 0, joinSuccess: {(channel, uid, elapsed) in
        
    })
    
    //result is zero as expected
}

func rtcEngine(_ engine: AgoraRtcEngineKit, didJoinedOfUid uid: UInt, elapsed: Int) {
     
  //is never called
}

func leaveChannel() {
    agoraKit?.leaveChannel(nil)
}

func destroyInstance() {
    AgoraRtcEngineKit.destroy()
}
 

}

Ответ №1:

Для поля токен вы используете временный токен, созданный для правильного имени канала? К вашему сведению, срок действия этих токенов истекает через 24 часа.

Если вы используете SDK 3.x, то все остальное должно быть в порядке. Возможно , стоит добавить вызов agoraKit?.enableVideo() , и этот проект здесь выполняет минимальную настройку с нуля, возможно, стоит посмотреть:

https://github.com/AgoraIO-Community/Agora-iOS-SwiftPM/tree/main/Agora_SDK-Example

другой проект в этом репо использует Agora UIKit, что было бы проще настроить.

Комментарии:

1. Спасибо вам за ответ . Похоже, этот вопрос был связан с делегированием полномочий . Вообще никаких проблем с токенами . Я использовал совершенно другой код для подключения, и это сработало . До сих пор не знаю, почему здесь этого не было .

2. О, теперь я понимаю, вам нужно будет включить self вместо agoraDelegate этого создание двигателя. Рад, что у тебя все получилось!