当我尝试使用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"谢谢。
发布于 2021-10-21 17:54:07
您的STS颁发的凭据似乎已过期。要解决此问题,您需要在每次连接脱机时刷新:
creds = provider.load()
awsiot.configureIAMCredentials(...)更多信息您可以在此问题上查看Disconnect followed by Websocket Handshake Error #215
https://stackoverflow.com/questions/51280169
复制相似问题