Verbinden Sie sich mit AWS IoT über einen Web-Socket mit Cognito-authentifizierten Benutzern.

Ich versuche, über den Web-Socket des Browsers eine Verbindung zu AWS IoT herzustellen.

Ich habe dieses Beispiel ausprobiert:https: //github.com/awslabs/aws-iot-examples/tree/master/mqttSampl

Und eine andere wurde ein wenig modifiziert, damit sie mit angemeldeten Cognito Identity Pool-Benutzern verwendet werden kann.https: //github.com/dwyl/learn-aws-iot/blob/master/src/js/utils/request.js#L2

Ich kann erfolgreich eine Verbindung herstellen, wenn ich einen IAM-Benutzer mit einer gültigen IoT-Richtlinie verwende. Wenn ich jedoch die Benutzeranmeldeinformationen verwende, erhalte ich die Antwort "101 Switching Protocols", die jedoch geschlossen wird.

Die dem authentifizierten Benutzer zugeordnete IAM-Rolle ist korrekt, und ich kann Anforderungen signieren und andere private Vorgänge wie das Aufrufen von APIG-Endpunkten ausführen. Auch die Socket-Verbindung reagiert nicht mit 403. Es handelt sich also wahrscheinlich nicht um ein Berechtigungsproblem.

Was könnte es sonst sein

Antworten auf die Frage(10)

Ihre Antwort auf die Frage