设备未收到影子更新-AWS-IoT中有太多断开连接事件?

时间:2019-06-02 13:14:08

标签: python aws-lambda mqtt aws-iot disconnected

服务器和设备之间的AWS IoT连接获得很多[断开连接]事件,并且设备未接收到增量消息。

我正在使用AWS IoT在自写的“控制器”(在树莓派上与版本1.4.0的AWSIoTPythonSDK运行,并通过LTE棒连接)和某些AWS lambda函数(使用带有npm包的节点)之间进行安全通信版本2.411.0中的aws-sdk)。该设置通常可以正常运行,因此可以处理增量消息,并不时更新影子状态。

我使用python-iot-sdk示例中的默认配置作为初始配置:

myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient(self.clientId)
        myAWSIoTMQTTShadowClient.configureEndpoint(self.host, self.port)
        myAWSIoTMQTTShadowClient.configureCredentials(self.rootCAPath, self.privateKeyPath, self.certificatePath)

        # AWSIoTMQTTShadowClient configuration - from AWS example
        myAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime(1, 32, 20)
        myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout(15)  # 10 sec
        myAWSIoTMQTTShadowClient.configureMQTTOperationTimeout(10)  # 5 sec

不幸的是,Controller无法识别AWS中的许多影子更新,例如。没有记录有关新增量消息的信息。

我已经尝试了不同的超时设置,分别启用和禁用了OfflinePublishQueue,但没有真正找到允许稳定使用的配置。

我确实收到了很多有关客户端断开连接事件的日志:

2019-06-02 14:03:03,933 AWSIoTPythonSDK.core.protocol.internal.workers - [DEBUG] - Produced [disconnect] event
2019-06-02 14:03:03,933 AWSIoTPythonSDK.core.protocol.internal.workers - [DEBUG] - Dispatching [disconnect] event
2019-06-02 14:03:04,333 AWSIoTPythonSDK.core.protocol.connection.cores - [DEBUG] - backOff: current backoff time is: 32 sec.

相应的MQTT主题$aws/events/presence/disconnected/<clientId>也显示了许多连接/断开连接(使用AWS IoT测试菜单)。

我真的不知道如何获得更稳定的连接,GSM信号很好,而且在较早版本的控制器中我们已经具有更好的连接质量。只要设备未收到将近30%的消息,整个设置将无法正常工作。

0 个答案:

没有答案