首页 > 解决方案 > 如何在云端和设备之间保持信息同步

问题描述

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

云端需要知道设备的状态,比如网络何时中断,网络何时恢复。

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

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

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

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

标签: python-3.xsynchronizationcloudmqttetcd3

解决方案


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

从 MQTT 3.1.1 标准第 3.1.2.5 节:

如果 Will Flag 设置为 1,这表明如果 Connect 请求被接受,Will 消息必须存储在服务器上并与网络连接相关联。遗嘱消息必须在网络连接随后关闭时发布,除非服务器在收到 DISCONNECT 数据包 [MQTT-3.1.2-8] 时删除了遗嘱消息。

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


推荐阅读