System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于MQTT协议的数据同步方法技术_技高网

基于MQTT协议的数据同步方法技术

技术编号:40705080 阅读:5 留言:0更新日期:2024-03-22 11:04
本发明专利技术提供了一种基于MQTT协议的数据同步方法,所述方法包括:设备端设置一个变量规则A,移动端设置一个变量规则A’,变量规则A和变量规则A’相对应;设备端每次状态或者参数发生变化时都通过MQTT协议向移动端上报状态参数变化消息;设备端每次通过MQTT协议向移动端上报状态参数变化消息时,都会依据变量规则A生成一个变量a<subgt;x</subgt;并赋到所上报的状态参数变化消息的packetID字段中;设备端每隔n秒向移动端上报含有变量a<subgt;x</subgt;的帧消息。能够识别控制协议丢失,且变量计数消息不易丢失。

【技术实现步骤摘要】

本专利技术涉及物联网系统,尤其是涉及基于mqtt协议的数据同步方法。


技术介绍

1、在物联网领域,很多时候需要移动端和设备端保持严格的数据同步;如果上报协议丢失,则会产生安全隐患或不良体验。例如用户在设备端上发布第一和第二步骤操作指令,再从移动端发布下一步骤操作指令,但因为网络波动导致第二步骤的上报协议丢失,此时设备端显示第二步骤已执行,移动端显示第二步骤未执行。

2、现有技术中解决该问题的常见方式包括:移动端在接收到协议后返回消息给设备端,设备端获得所返回的消息后确认移动端已收到协议。但如果所返回的消息丢失,设备端未收到所返回的消息需要通过其他技术手段判断移动端是否收到该协议,通常会造成较大的延时。

3、此外,在互联网领域也有涉及消息同步的问题,例如,游戏中常用的一种实现数据同步的方案为帧同步,帧同步具体思路是:服务器从各个客户端接收不同游戏玩家的操作信息,将各个游戏玩家的操作信息组合成数据帧,并将数据帧下发至各个客户端。各个客户端根据接收到的数据帧进行处理显示。在帧同步中,各个客户端的数据同步均是依赖于服务器进行中转,而且为了使得用户操作内容及时在界面显示,需要每秒进行数十次至数百次的帧同步。为了实现该效果,需要大量服务器支持该功能。但在物联网领域,只需要确保在移动端向设备端发布控制指令时,移动端界面与设备端同步,其余时间移动端与设备端允许少量延时,使用帧同步方案会占用服务器资源较多,造成资源浪费。

4、cn202310862399公开的基于物联网系统的防止关键消息丢失方法,通过上报变量计数有效的防止了关键消息丢失,对服务器资源占用较少。在实践中通过mqtt协议发送控制协议和全包消息,通过私有云协议上报变量计数。如果变量计数消息丢失,则需要请求发送全包消息,导致产生延时。


技术实现思路

1、本专利技术的目的在于提供一种能够识别控制协议丢失,且变量计数消息不易丢失的基于mqtt协议的数据同步方法。

2、本专利技术提供了一种基于mqtt协议的数据同步方法,所述方法包括:

3、设备端设置一个变量规则a,移动端设置一个变量规则a’,变量规则a和变量规则a’相对应;

4、设备端每次状态或者参数发生变化时都通过mqtt协议向移动端上报状态参数变化消息;

5、设备端每次通过mqtt协议向移动端上报状态参数变化消息时,都会依据变量规则a生成一个变量ax并赋到所上报的状态参数变化消息的packetid字段中;设备端每隔n秒通过私有云协议向移动端上报含有变量ax的帧消息;

6、移动端接收到设备端的上报的状态参数变化消息后,依据变量规则a’生成一个变量a'x,并读取所接收到的状态参数变化消息中的变量ax并与变量a'x进行比对;如果变量ax与变量a'x相应,移动端依据状态参数变化消息进行数据更新;如果变量ax与变量a'x不相应,移动端向设备端发送同步请求;

7、移动端接收到设备端的上报的帧消息后,读取所接收到的帧消息中的变量ax并与变量a'x进行比对;如果变量ax与变量a'x不相应,移动端向设备端发送同步请求。

8、本专利技术的有益效果是:设备端通过mqtt协议向移动端上报状态参数变化消息时,仅需变量ax并赋到所上报的状态参数变化消息的packetid字段中即可,不需要单独使用私有云协议上报变量ax;且变量ax和状态参数变化消息同包上报,避免了状态参数变化消息成功上报,但对应的变量ax所丢失带来的问题。

9、进一步,设备端收到同步请求后,向移动端通过mqtt协议上报全包消息,并依据变量规则a生成一个变量ax并赋到所上报的全包消息的packetid字段中;移动端收到全包消息后更新状态和参数信息,并将该全包消息的变量ax赋值到变量a'x。

10、采用上述进一步方案的有益效果是:如果设备端未收到同步请求,或者移动端未收到全包消息,依据该方法自然地,等到下一次设备端上报的变量ax后,可以再次进行全包消息的同步。整体逻辑简单合理。

11、进一步,变量规则a为:

12、ax=ax-1+1;a0=0;

13、变量规则a’为:

14、a'x=a'x-1+1;a'0=0;

15、如果ax=a'x,则判定为变量ax与变量a'x相应;否则为不相应。

16、采用上述进一步方案的有益效果是:变量规则简单合理。

17、进一步,所述n的范围为:

18、0.2s≤n≤0.8s。

19、采用上述进一步方案的有益效果是:该范围能够较好地避免延时问题,同时也能避免服务器资源的浪费。

20、此外,本专利技术还提供了另一种基于mqtt协议的数据同步方法,所述方法包括:

21、设备端设置一个变量规则a,移动端设置一个变量规则a’,变量规则a和变量规则a’相对应;

22、设备端每次状态或者参数发生变化时都通过mqtt协议向移动端上报状态参数变化消息;设备端每次通过mqtt协议向移动端上报状态参数变化消息或帧消息后,都会重启计时,如果计时结果大于n秒,则通过mqtt协议向移动端上报payload为空的帧消息;

23、设备端每次通过mqtt协议向移动端上报状态参数变化消息或帧消息时,都会依据变量规则a生成一个变量ax并赋到所上报的状态参数变化消息或帧消息的packetid字段中;

24、移动端接收到设备端的上报的状态参数变化消息后,依据变量规则a’生成一个变量a'x,并读取所接收到的状态参数变化消息中的变量ax与变量a'x进行比对;如果变量ax与变量a'x相应,移动端依据状态参数变化消息进行数据更新;如果变量ax与变量a'x不相应,移动端向设备端发送同步请求;

25、移动端接收到设备端的上报的帧消息后,依据变量规则a’生成一个变量a'x,并读取所接收到的帧消息中的变量ax与变量a'x进行比对;如果变量ax与变量a'x不相应,移动端向设备端发送同步请求。

26、本专利技术的有益效果是:设备端通过mqtt协议向移动端上报状态参数变化消息时,仅需变量ax并赋到所上报的状态参数变化消息的packetid字段中即可,不需要单独使用私有云协议上报变量ax;且变量ax和状态参数变化消息同包上报,避免了状态参数变化消息成功上报,但对应的变量ax所丢失带来的问题,同时不需要私有云协议消息的介入。

27、进一步,设备端收到同步请求后,向移动端通过mqtt协议上报全包消息,并依据变量规则a生成一个变量ax并赋到所上报的全包消息的packetid字段中;移动端收到全包消息后更新状态和参数信息,并将该全包消息的变量ax赋值到变量a'x。

28、如果设备端未收到同步请求,或者移动端未收到全包消息,依据该方法自然地,等到下一次设备端上报的变量ax后,可以再次进行全包消息的同步。整体逻辑简单合理。

本文档来自技高网...

【技术保护点】

1.基于MQTT协议的数据同步方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于MQTT协议的数据同步方法,其特征在于,设备端收到同步请求后,向移动端通过MQTT协议上报全包消息,并依据变量规则A生成一个变量ax并赋到所上报的全包消息的packetID字段中;移动端收到全包消息后更新状态和参数信息,并将该全包消息的变量ax赋值到变量a'x。

3.根据权利要求1所述的基于MQTT协议的数据同步方法,其特征在于,变量规则A为:

4.根据权利要求1所述的基于MQTT协议的数据同步方法,其特征在于,所述n的范围为:

5.基于MQTT协议的数据同步方法,其特征在于,所述方法包括:

6.根据权利要求5所述的基于MQTT协议的数据同步方法,其特征在于,设备端收到同步请求后,向移动端通过MQTT协议上报全包消息,并依据变量规则A生成一个变量ax并赋到所上报的全包消息的packetID字段中;移动端收到全包消息后更新状态和参数信息,并将该全包消息的变量ax赋值到变量a'x。

7.根据权利要求5所述的基于MQTT协议的数据同步方法,其特征在于,变量规则A为:

8.根据权利要求5所述的基于MQTT协议的数据同步方法,其特征在于,所述n的范围为:

...

【技术特征摘要】

1.基于mqtt协议的数据同步方法,其特征在于,所述方法包括:

2.根据权利要求1所述的基于mqtt协议的数据同步方法,其特征在于,设备端收到同步请求后,向移动端通过mqtt协议上报全包消息,并依据变量规则a生成一个变量ax并赋到所上报的全包消息的packetid字段中;移动端收到全包消息后更新状态和参数信息,并将该全包消息的变量ax赋值到变量a'x。

3.根据权利要求1所述的基于mqtt协议的数据同步方法,其特征在于,变量规则a为:

4.根据权利要求1所述的基于mqtt协议的数据同步方法,其特征在于,所述n的范围为:

...

【专利技术属性】
技术研发人员:方志华李辉
申请(专利权)人:浙江田螺云厨科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1