如何使用AWS Node.js SDK订阅Thingshadow更新



所以我有一堆AWS IoT设备更新/报告其状态,但不确定我如何从Javsascript客户端订阅报告/接受/Delta状态。

我查看了AWS SDK,但看不到订阅物联网对象中影子事件的方法。我可以使用AWS-iot库,但对如何使用AWS凭据有些困惑(因为它不是设备的客户端)。

在这种用例中,我应该使用AWS SDK还是AWS-IOT SDK?两者之间有什么区别。如果使用AWS SDK如何订阅事物事件?如果使用AWS-iot SDK,我该如何使用AWS凭据而不是证书身份验证?我在示例中没有看到它。

到目前为止,我已经有了这种工作方法。

Device -> Updates Thing Shadow data
Device -> Sends message to a generic topic with "Thing" id
API -> Listens to the generic topic
API -> Parses message that comes in to the generic topic with "Thing" id
API -> Uses AWS SDK  (AWS IOT Data class) to get the specific "Thing" shadow data

这就是我能够通过代码进行回合的方式。当我经历并尝试以更好的方式架构时,我欢迎更多更新。

希望这会有所帮助。

-kev

首先,查找此文档,也许可以帮助您:

https://github.com/aws/aws-iot-device-sdk-js

当您将某些内容发布给Thingshadow,并且国家被接受时,您可以在" $ aws/things//shadow/get/convented"频道中订阅它。

要订阅此频道,您可以使用设备的订阅方法。

var AWS = require('aws-sdk');
var device = awsIot.device({
    region: AWS.config.region,
    host:AWSConfiguration.host,
    clientId: clientId,
    protocol: 'wss',
    maximumReconnectTimeMs: 8000,
    debug: true,
    acessKeyId: '',
    secretKey: '',
    sessionToken: ''
  });
device.subscribe('$aws/things/<thingName>/shadow/get/accepted');

如果您感到困惑或需要有关凭据的信息,请查看此示例:

https://github.com/aws/aws-iot-device-sdk-js/blob/fd0807e20a0d79c721c721cfb3b3b856222392f0c65e7e1e7e1e7e1e1/exampleser/examplease/examples/browser/browser/mqtt-clorer/mqtt-explorer/indexexexex.js

配置文件在同一文档中。

希望它有帮助。

最新更新