我正在编写一个需要云控制设备操作的项目,并希望保持信息同步。
云端需要知道设备的状态,比如网络何时中断,网络何时恢复。
网络恢复后,云端修改信息同步到设备。
有人知道我的方法应该是什么样的吗?有小费吗?
我打算在两端后台添加常驻程序来确定,但实际上项目中的云不可能只连接一台设备,可能会在一台设备上运行多个应用程序,这样做非常繁琐。有没有简单的组件来实现这个功能?
我希望控制信息和数据信息在云端和设备上同步
我正在编写一个需要云控制设备操作的项目,并希望保持信息同步。
云端需要知道设备的状态,比如网络何时中断,网络何时恢复。
网络恢复后,云端修改信息同步到设备。
有人知道我的方法应该是什么样的吗?有小费吗?
我打算在两端后台添加常驻程序来确定,但实际上项目中的云不可能只连接一台设备,可能会在一台设备上运行多个应用程序,这样做非常繁琐。有没有简单的组件来实现这个功能?
我希望控制信息和数据信息在云端和设备上同步
根据您的标签,我假设您使用 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
代表他将有效负载发布到现在可以采取相应行动的云客户端。