如何在云端和设备之间保持信息同步

How to keep information synchronized between the cloud and the device

我正在编写一个需要云控制设备操作的项目,并希望保持信息同步。

云端需要知道设备的状态,比如什么时候断网,什么时候恢复

网络恢复后,云端修改信息同步到设备

有人知道我的方法应该是什么样的吗?有什么建议吗?

我打算在两端添加后台常驻程序来确定,但实际上项目中的云端不可能只连接一台设备,多个app可能运行在一个设备,这是非常繁琐的事情。有没有简单的组件可以实现这个功能?

我希望云端和设备同步控制信息和数据信息

根据您的标签,我假设您正在使用 MQTT 作为系统的消息传递协议。如果是这样,为了满足您跟踪设备-云连接状态的需要,MQTT 指定了一个名为 "Last Will and Testament".

的功能

来自 MQTT 3.1.1 标准第 3.1.2.5 节:

If the Will Flag is set to 1 this indicates that, if the Connect request is accepted, a Will Message MUST be stored on the Server and associated with the Network Connection. The Will Message MUST be published when the Network Connection is subsequently closed unless the Will Message has been deleted by the Server on receipt of a DISCONNECT Packet [MQTT-3.1.2-8].

这可以用来让云上的远程 MQTT 客户端知道设备何时连接以及何时断开连接,方法是将 online 有效负载发布到主题(例如)device/conn_status 之后成功连接,并向同一主题注册 Last Will offline 消息。现在,每当设备客户端离线时,代理将代表他向云客户端发布 offline 有效负载,云客户端现在可以采取相应行动。