问题描述
我们的IoT设备收集示例数据,并且示例数据将无限期地保留在设备上。而且,我们的物联网设备不会收集大量样本;每周最多有十二个样本。
我正在使用AWS IoT,并且已经将设备成功连接到IoT Core,并且可以通过MQTT协议发布/订阅消息。从那里开始,我有一条规则将有效负载转发到我的HTTP端点。
在使用AWS IoT之前,我通过将json负载从设备发送到http端点进行了概念验证。该操作将一条新记录插入到我的RDS数据库中,并向该设备返回了UUID。然后,设备将UUID与相应的样本一起存储。这样,我们就可以将设备上的示例与云服务中的示例进行匹配。
但是,现在我已经过渡到使用MQTT,我意识到我无法从我的API调用中获取UUID。我从MQTT收到的唯一答复是我发送的原始消息。 我以为我至少知道它成功了,但是我想知道的是插入到数据库中的示例记录的UUID。有人对此有任何建议吗?如果这不是典型的模式,请向我解释一种替代方法。
解决方法
MQTT消息数据流是单向的。要返回服务器生成的UUID,需要设备订阅服务器将UUID发布到的主题。
另一种方法是让客户端创建一个UUID并将其与示例一起发布在原始MQTT消息中。然后,服务器将这个UUID与样本保留在RDS中。