我有一个应用程序订阅和发布关于物联网物联网的主题。我想知道两个班级之间的差异"设备"和" thingShadow"是。这个library给出了两者的例子,它们似乎都具有相似的功能。
答案 0 :(得分:7)
device class用于订阅和发布有关遥测和消息传递的MQTT主题消息。
thingShadow class是wrapper around the device class,它提供了其他方法,例如.register
,.update
或delete
,用于与设备阴影进行交互。此类还会发出与影子生命周期相关的特定事件,例如status
,delta
或foreignStateChange
。
[...] thingShadow类允许设备更新,通知AWS IoT的更改,获取当前状态或删除Thing Shadows。
所以基本上,如果你正在使用设备阴影,请使用thingShadow
类,否则你可以使用device
类。
修改强>
为了进一步扩展AWS IoT的基本原则,您可以在设备之间使用两种通信方案:
由于AWS IoT实施了标准MQTT界面,您可以使用主题使用名为publish-subscribe的模式与您的设备进行通信。您的应用可以订阅主题并等待设备在其上发布消息。同样,您的应用可以在设备主题上发布消息,并让设备接收消息。
AWS IoT实现了一个名为device shadow的第二个通信接口,它允许您在设备断开连接时对设备进行寻址,并在您的应用和设备本身之间保持同步状态。 AWS文档明确说明了这一点。
一个东西阴影(有时也称为设备阴影)是一个JSON 用于存储和检索当前状态信息的文档 对于一件事(设备,应用程序等)。 Thing Shadows服务 为您连接到AWS IoT的每件事物维护一个事物阴影。您 可以使用事物阴影来获取和设置MQTT上的事物的状态 HTTP,无论事物是否连接到Internet。 每个阴影都由其名称唯一标识。
可以在SDK中使用device class在MQTT主题上进行订阅和发布,以及thing shadow class来检索,更新或删除设备事物影子文档。