amazon-web-services - Web 套接字握手错误 AWS IOT
问题描述
当我尝试使用 aws-iot-python-sdk 连接到 AWS IOT 时,出现此 WebSocket 握手错误。我正在使用 WebSocket + MQTT 版本发布和接收数据。非常奇怪的是,它在几个小时前工作正常,没有任何代码更改,只是开始抛出错误,我很困惑发生了什么?是 AWS IOT 本身还是我身边发生了什么事!!!
我用来连接 AWS IOT 的代码。
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
from config import IOT_ENDPOINT, IOT_CREDENTIAL_PATH
def connect(mqttClientId):
try:
myMQTTClient = AWSIoTMQTTClient(mqttClientId, useWebsocket=True)
myMQTTClient.configureEndpoint(IOT_ENDPOINT, 443)
myMQTTClient.configureCredentials(IOT_CREDENTIAL_PATH)
myMQTTClient.configureAutoReconnectBackoffTime(1, 32, 20)
# Infinite offline Publish queueing
myMQTTClient.configureOfflinePublishQueueing(-1)
myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec
myMQTTClient.connect()
return myMQTTClient
except Exception as error:
print(error)
print "No Internet Connection... Can't connect AWS IOT"
谢谢你。
解决方案
Looks like your credentials issued by STS has been expired. To solve this you will need to refresh each time the connection goes offline:
creds = provider.load()
awsiot.configureIAMCredentials(...)
More information you can take a look on this issue Disconnect followed by Websocket Handshake Error #215
推荐阅读
- html - 文本 nowrap 和最大宽度 100%
- axios - 在 axios 中转义
- amazon-web-services - Elastic Beanstalk ebcli 不接受 AWSeducate 凭证
- javascript - CSS 动画不会在原始 JS 状态下运行
- visual-studio-code - vscode 文件夹的排除/静音代码分析
- hibernate - 将多对多实数映射为一对多关系
- node.js - 如何使用 ReactJs 客户端和远程 NodeJs 服务器集群实现 CSRF 保护?
- identityserver4 - 关联失败,远程登录。AspNet Core 身份服务器
- haskell - 如何为受约束的函数创建数据(或最好是新类型)包装器?
- r - 将图例添加到 ggplot2