所以我有一堆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
配置文件在同一文档中。
希望它有帮助。