【问题标题】:Web-socket Handshake Error AWS IOTWeb 套接字握手错误 AWS IOT
【发布时间】:2018-12-19 04:21:10
【问题描述】:

我在尝试使用 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"

谢谢。

【问题讨论】:

  • 您是否授予了适当的权限和政策?
  • 是的,我已授予完全权限

标签: amazon-web-services aws-sdk aws-iot


【解决方案1】:

您的 STS 颁发的凭据似乎已过期。要解决此问题,您需要在每次连接脱机时刷新:

creds = provider.load()
awsiot.configureIAMCredentials(...)

更多信息你可以看看这个问题Disconnect followed by Websocket Handshake Error #215

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2017-11-23
    • 2016-08-31
    • 2020-08-17
    • 2015-02-22
    • 1970-01-01
    相关资源
    最近更新 更多