所以我有一堆AWS IOT设备更新/报告他们的状态,但不知道如何从我的javsascript客户端订阅报告/接受/ delta状态。
我查看了AWS sdk,但没有看到在iot对象中订阅事物阴影事件的方法。我可以使用aws-iot库,但对于如何使用AWS凭证有点困惑(因为它不是设备事物客户端)。
在这个用例中,我应该使用AWS sdk还是AWS-IOT sdk?这两者之间的区别是什么。如果使用aws sdk如何订阅thinghadow事件?如果使用AWS-IOT sdk,我如何使用aws凭证而不是证书身份验证?我在示例中没有看到它。
答案 0 :(得分:0)
到目前为止,我已经采用了这种方法。
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
答案 1 :(得分:0)
首先,请查看此文档,也许它可以帮助您:
https://github.com/aws/aws-iot-device-sdk-js
当您向thingShadow发布内容并且状态已被接受时,您可以在频道' $ aws / things // shadow / get / accepted'中订阅它。
要订阅此频道,您可以使用设备中的订阅方法。
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');
如果您感到困惑或者您需要有关凭据的信息,请查看以下示例:
配置文件位于同一文档中。
希望它有所帮助。