Bestätigen Sie, indem Sie unten [ ] in [x] ändern, um sicherzustellen, dass es sich um einen Fehler handelt:
Beschreibe den Fehler
MQTT über Websocket-Verbindung kann keine Verbindung herstellen, obwohl ein normales MQTT einwandfrei funktioniert.
SDK-Versionsnummer
awscrt==0.5.13
awsiotsdk==1.0.6
Plattform/Betriebssystem/Gerät
MAC
Reproduzieren (beobachtetes Verhalten)
Erwartetes Verhalten
Um möglichst reibungslos zu arbeiten
Protokolle/Ausgabe
Vollständige Protokolle finden Sie hier
python pubsub.py --endpoint xxxxxxxx-ats.iot.us-east-2.amazonaws.com --root-ca AmazonRootCA1.pem --cert Certificate.crt --key PrivateKey.pem.key --use-websocket --signing-region us-east-2 --verbosity Debug
Zusätzlicher Kontext
Bei einer Verbindung ohne Websocket funktioniert es wie erwartet.
Sie können dies schließen, es gab ein Problem mit den Berechtigungen im Zusammenhang mit den Berechtigungen des IAM-Benutzers, daher einige Rückmeldungen:
awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_ERROR_MQTT_UNEXPECTED_HANGUP', message='The connection was closed unexpectedly.', code=5134)
Hallo, sorry, ich habe nicht verstanden, wie du das Problem gelöst hast. Kannst du mehr erklären? Ich habe das gleiche Problem bei der Verwendung des Beispiels shadow.py und bin Anfänger
Es kann viele Ursachen für ein unerwartetes Auflegen geben, aber victorct-pronto hat sein Problem durch die Verwendung einer super-permissiven IAM-Richtlinie namens AWSIOTFullAccess behoben. Es sieht aus wie das:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:*"
],
"Resource": "*"
}
]
}
Nachdem Sie Ihren Code zum Laufen gebracht haben, stellen Sie sicher, dass Sie die Richtlinienberechtigungen auf das erforderliche Maß reduzieren. Auch wenn Sie immer noch Probleme haben, es zum Laufen zu bringen, empfehle ich, ein neues Problem zu öffnen, in dem beschrieben wird, was Sie versucht haben und wo Sie feststecken.