Ошибка входа в AWS iOT с использованием учетных данных IAM iOS - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь войти в AWS iOT, используя учетные данные пользователя IAM. Но я постоянно получаю сообщение об ошибке «ошибка соединения», в консоли оно отображается как «CP Conn 0x2819e8a80 Ошибка SSLHandshake (-9807)». Я проверил с другими соединениями Wi-Fi, но все же я получаю те же ошибки.

Здесь я делюсь своим кодом, чтобы получить больше ясности,

        let credentialsProvider = AWSStaticCredentialsProvider(accessKey: myAccessKey, secretKey: mySecretKey)
        let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1, credentialsProvider: credentialsProvider)

        AWSIoTDataManager.register(with: configuration!, forKey: "iOTManager")
        iotDataManager = AWSIoTDataManager(forKey: "iOTManager")

        #if DEMONSTRATE_LAST_WILL_AND_TESTAMENT
        let lwtTopic: NSString = Constants.lwtTopic
        let lwtMessage: NSString = Constants.lwtMessage
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.topic = lwtTopic as String
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.message = lwtMessage as String
        self.iotDataManager.mqttConfiguration.lastWillAndTestament.qos = .AtMostOnce
        #endif

        self.iotDataManager.connectUsingWebSocket( withClientId: UUID().uuidString, cleanSession:true, statusCallback: mqttEventCallback)
    }

    func mqttEventCallback( _ status: AWSIoTMQTTStatus ) {
        DispatchQueue.main.async {
            print(status.rawValue)
            switch(status)
            {
            case .connecting:
                print("Connecting..!")

            case .connected:
                print("Connected..!")

            case .disconnected:
                print("Disconnected..!")

            case .connectionRefused:
                print("connectionRefused..!")

            case .connectionError:
                print("connectionError..!")

            case .protocolError:
                print("protocolError..!")

            default:
                print("unknowState" + String(status.rawValue))
            }
        }

Когда я запускаю тот же код в iPad mini, я могу успешно войти в AWS iOT, но его нет в iPhone (7, 7Plus, 8Plus). Мне было интересно, почему это происходит. Я не понимаю, что не так в коде. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

1 голос
/ 26 марта 2019

После некоторых исследований я нашел это 2 вещи

1) Сбой рукопожатия SSL при использовании новой конечной точки с '-ats' или '.ats' здесь

2) В более ранней версии (IOS 12.1.1) возникает проблема, поэтому проверьте версию устройства.

Пожалуйста, отошлите это Документ также

...