一种通信方法及系统与流程

文档序号:33190174发布日期:2023-02-04 08:06阅读:31来源:国知局
一种通信方法及系统与流程

1.本技术涉及通信技术领域,具体涉及一种通信方法及系统。


背景技术:

2.随着物联网设备的普及,智能化软件硬件逐步走近普通人民的生活,各种传感器遍布我们的生活,形成了巨大的网络系统。因此需要一种可以满足设备与服务间通信的方法,mqtt就是满足这种需求的协议。mqtt是基于iso(国际标准化)标准的下基于发布/订阅范式的消息协议,它工作在tcp/ip(传输控制协议/网际协议)协议族上,为硬件性能底下的远程设备及网络状况糟糕的情况下设计的消息协议,mqtt有三种消息发布服务质量,小型传输,协议交换最小化,网络流量低,提供一对多消息发布,适用范围非常广泛。使用mqtt服务器可以节省带宽,减少开销。
3.mqtt协议是基于客户端-服务器的消息发布/订阅传输协议,mqtt客户端必须知道mqtt服务器的通信地址才能建立通信通道。专利cn201810843313.1提过了一种数据采集和远程控制的方法及系统,但是其获取mqtt服务器通信地址技术方案是mqtt客户端启动时获取,包括从mqtt客户端本地获取或者通过网络从服务器获取。这种技术方案有缺点,即mqtt服务器出现问题后需要更换mqtt服务器时,mqtt客户端要么难于维护无法正常工作。
4.因此,现有技术还有待改进和发展。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本技术提供一种通信方法及系统,以解决上述技术问题。
6.为实现上述目的,本技术提供一种通信方法,包括:
7.客户端向网络服务器发送客户端设备信息;
8.所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息并返回给所述客户端;
9.所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题;
10.当所述第一传输服务器需要更换时,所述第一传输服务器通过所述第一主题向所述客户端发布第二传输服务器配置信息;
11.所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题。
12.于本技术一可选实施例中,所述客户端向网络服务器发送客户端设备信息,包括:
13.所述客户端通过网络协议向网络服务器发送所述客户端设备信息。
14.于本技术一可选实施例中,所述客户端设备信息包括客户端设备唯一标识和客户端签名信息。
15.于本技术一可选实施例中,所述网络服务器根据所述客户端设备信息生成第一传
输服务器配置信息并返回给所述客户端,包括:
16.所述网络服务器检验所述客户端设备信息的合法性;
17.当校验通过后,所述网络服务器根据所述客户端设备信息生成所述第一传输服务器配置信息并返回给所述客户端。
18.于本技术一可选实施例中,所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息,具体包括:
19.所述网络服务器根据所述客户端设备信息获取对应的第一传输服务器的传输服务器地址和第一主题,打包生成所述第一传输服务器配置信息。
20.于本技术一可选实施例中,所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题,包括:
21.所述客户端对接收到的第一传输服务器配置信息进行解析,以获取所述传输服务器地址和所述第一主题;
22.所述客户端根据获取的所述传输服务器地址与所述第一传输服务器建立连接,订阅所述第一主题。
23.于本技术一可选实施例中,所述客户端根据第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题,包括:
24.所述客户端接收所述第二传输服务器配置信息;
25.所述客户端检查所述第二传输服务器配置信息是否满足预设条件;
26.当满足预设条件时,所述客户端利用所述第二传输服务器配置信息更换第一服务器配置信息;
27.所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅所述第二主题。
28.于本技术一可选实施例中,所述第一传输服务器配置信息中包括第一配置信息时间戳;所述第二传输服务器配置信息中包括第二配置信息时间戳。
29.于本技术一可选实施例中,所述客户端检查所述第二传输服务器配置信息是否满足预设条件,包括:
30.所述客户端根据第一时间戳和第二时间戳来检查所述第二传输服务器配置信息是否满足预设条件,其中,所述预设条件为所述第一配置信息时间戳小于所述第二配置信息时间戳。
31.于本技术一可选实施例中,所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题,具体包括:
32.所述客户端判断本地是否存在传输服务器配置信息;
33.当所述客户端本地存在传输服务器配置信息时,所述客户端判断所述第一传输服务器配置信息的第一配置信息时间戳是否小于本地存在的传输服务器配置信息中的配置信息时间戳;
34.当所述客户端本地不存在传输服务器配置信息,或者所述第一传输服务器配置信息的第一配置信息时间戳大于本地存在的传输服务器配置信息中的配置信息时间戳时,所述客户端则利用所述第一传输服务器配置信息更换本地的传输服务器配置信息。
35.于本技术一可选实施例中,所述方法还包括:
36.当所述客户端运行过程中与所述第一传输服务器连接异常断开时,所述客户端根据所述第一传输服务器配置信息尝试与所述第一传输服务器建立连接;
37.当多次连接失败时,返回所述客户端向网络服务器发送客户端设备信息的步骤。
38.于本技术一可选实施例中,所述方法还包括:
39.当所述客户端运行过程中与所述第二传输服务器连接异常断开时,所述客户端根据所述第二传输服务器配置信息尝试与所述第二传输服务器建立连接;
40.当多次连接失败时,返回所述客户端向网络服务器发送客户端设备信息的步骤。
41.为实现上述目的本技术还提供一种通信系统,所述系统包括:
42.客户端,网络服务器以及传输服务器,所述传输服务器包括第一传输服务器和第二传输服务器;
43.其中,所述客户端,所述网络服务器以及所述传输服务器三者被配置为:
44.所述客户端向网络服务器发送客户端设备信息;
45.所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息并返回给所述客户端;
46.所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题;
47.当所述第一传输服务器需要更换时,所述第一传输服务器通过所述第一主题向所述客户端发布第二传输服务器配置信息;
48.所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题。
49.本技术的有益效果:本技术提供一种基于mqtt协议的通信系统和一种基于mqtt协议的通信方法,通过本技术实现了mqtt服务器与mqtt客户端的动态连接,避免了当mqtt服务器升级维护或因异常原因无法工作时导致mqtt客户端无法正常工作。
50.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
51.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
52.图1是本技术基于mqtt协议的通信应用场景示意图;
53.图2是本技术的通信方法流程图;
54.图3是本技术基于mqtt协议的通信方法的流程示意图;
55.图4是本技术三端交互流程图;
56.图5是本技术的通信系统原理框图。
具体实施方式
57.以下将参照附图和优选实施例来说明本技术的实施方式,本领域技术人员可由本
说明书中所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本技术,而不是为了限制本技术的保护范围。
58.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,遂图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
59.在下文描述中,探讨了大量细节,以提供对本技术实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本技术的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本技术的实施例难以理解。
60.本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
61.除非另有说明,术语“多个”表示两个或两个以上。
62.本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
63.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
64.首先要说明的是mqtt是一个基于客户端-服务器的消息发布/订阅传输协议。mqtt协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(m2m)通信和物联网(iot)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
65.mqtt协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几种特性:
66.使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
67.对负载内容屏蔽的消息传输;
68.使用tcp/ip提供网络连接;
69.有三种消息发布服务质量;
70.小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量;
71.使用lastwill和testament特性通知有关各方客户端异常中断的机制。
72.http服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
73.图1是本技术基于mqtt协议的通信应用场景示意图。在车联网场景中,mqtt能够胜任海量车机系统灵活、快速、安全接入,并保证复杂网络环境下消息实时性、可靠性,其主要具有以下优势:
74.开放消息协议,简单易实现。市场上有大量成熟的软件库与硬件模组,可以有效降低车机接入难度和使用成本;
75.提供灵活的发布订阅和主题设计,能够通过海量的topic进行消息通信,应对各类车联网业务;
76.payload(数据传输方式)格式灵活,报文结构紧凑,可以灵活承载各类业务数据并有效减少车机网络流量;
77.提供三个可选的qos等级,能够适应车机设备不同的网络环境;
78.提供在线状态感知与会话保持能力,方便管理车机在线状态并进行离线消息保留。
79.综上所述,mqtt协议无疑是为车联网平台的搭建带来了便利。
80.图2为本技术的方法流程图,如图2所示,本技术提供一种通信方法,包括:
81.步骤210,客户端向网络服务器发送客户端设备信息;
82.步骤220,所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息并返回给所述客户端;
83.步骤230,所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题;
84.步骤240,当所述第一传输服务器需要更换时,所述第一传输服务器通过所述第一主题向所述客户端发布第二传输服务器配置信息;
85.步骤250,所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题。
86.根据本技术提供的通信方法,通过客户端向网络服务器发送客户端设备信息,请求获取传输服务器配置信息;网络服务器根据接收到的客户端设备信息对客户端进行传输服务器地址和主题分配,得到目标传输服务器对应的传输服务器地址和主题打包成传输服务器配置信息,通过网络协议将传输服务器配置信息发送给客户端;客户端根据接收到的第一传输服务器配置信息解析出传输服务器地址和主题,与第一传输服务器建立连接,第一传输服务器订阅第一主题;当第一传输服务器有变化需要更换第一传输服务器时,第一传输服务器通过客户端订阅的第一主题向客户端发送第二传输服务器和第二主题,客户端收到第二传输服务器和第二主题后断开与第一传输服务器的连接,与第二传输服务器建立连接且订阅新的第二主题。通过以上方法实现传输服务器和客户端的动态连接,避免了当传输服务器升级维护或因异常原因无法工作时导致客户端无法正常工作。
87.下面根据图2具体介绍各步骤执行过程。
88.首先执行步骤210,客户端通过网络协议向网络服务器发送客户端设备信息,请求获取传输服务器配置信息。
89.所述客户端设备信息中包括有:客户端设备唯一标识、客户端签名信息、客户端上次获取的配置信息时间戳、客户端系统时间戳。接着执行步骤220,所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息并返回给所述客户端。
90.所述网络服务器中储存了可用的传输服务器配置信息及对应的客户端设备信息。在该过程中当网络服务器接收到所述客户端设备信息后,首先需要校验设备信息的合法性,其通过接收到的客户端设备信息中的客户端设备唯一标识和客户端签名信息与网络服
务器中现有的客户端设备唯一标识和客户端签名信息对比,若存在相应的客户端设备唯一标识和客户端签名信息那么该设备信息有效,反之无效。在校验通过后,网络服务器为客户端分配传输服务器配置信息并返回给客户端。
91.传输服务配置信息,包括有传输服务器地址、主题和配置信息时间戳,使用json(一种轻量级的数据交换格式)格式。
92.接着执行步骤230,所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题。
93.所述客户端接收到所述第一传输服务器配置信息后,解析出传输服务器地址、第一主题和第一配置时间戳后,所述客户端判断本地是否存在传输服务器配置信息;当所述客户端本地存在传输服务器配置信息时,所述客户端判断所述第一传输服务器配置信息的第一配置信息时间戳是否小于本地存在的传输服务器配置信息中的配置信息时间戳;当所述客户端本地不存在传输服务器配置信息,或者所述第一传输服务器配置信息的第一配置信息时间戳大于本地存在的传输服务器配置信息中的配置信息时间戳时,所述客户端则利用所述第一传输服务器配置信息更换本地的传输服务器配置信息,否则忽略本次获取到的传输服务器配置信息。
94.当本地传输服务器配置信息更换时,传输服务器向网络服务器返回相应的配置信息,用于更新网络服务器储存的配置信息。
95.如果获取的传输服务器配置信息失败,则每隔一秒向网络服务器发一次获取传输服务器配置信息,直至成功。
96.客户端通过网络协议连接传输服务器,如果多次连接失败,则表明获取到的第一传输服务器配置信息有问题,那么重新执行步骤210;如果连接成功则客户端向第一传输服务器订阅第一主题。
97.接着执行步骤240及步骤250,当所述第一传输服务器需要更换时,所述第一传输服务器通过所述第一主题向所述客户端发布第二传输服务器配置信息;所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题。
98.客户端运行过程中会一直检测是否接收到第一传输服务器通过第一主题发布的第二传输服务器配置信息。当所述客户端接收所述第二传输服务器配置信息;所述客户端检查所述第二传输服务器配置信息是否满足预设条件;当满足预设条件时,所述客户端利用所述第二传输服务器配置信息更换第一服务器配置信息;所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅所述第二主题。
99.所述第一传输服务器配置信息中包括第一配置信息时间戳;所述第二传输服务器配置信息中包括第二配置信息时间戳。
100.所述客户端根据第一时间戳和第二时间戳来检查所述第二传输服务器配置信息是否满足预设条件,其中,所述预设条件为所述第一配置信息时间戳小于所述第二配置信息时间戳。
101.在本实施例中,所述通信方法,还包括:
102.当所述客户端运行过程中与所述第一传输服务器连接异常断开时,所述客户端根据所述第一传输服务器配置信息尝试与所述第一传输服务器建立连接。当多次连接失败时,返回所述客户端向网络服务器发送客户端设备信息的步骤。
103.当所述客户端运行过程中与所述第二传输服务器连接异常断开时,所述客户端根据所述第一传输服务器配置信息尝试与所述第二传输服务器建立连接。当多次连接失败时,返回所述客户端向网络服务器发送客户端设备信息的步骤。
104.综上所述,通过本实施例的通信方法能够实现传输服务器与客户端的动态连接,避免了当传输服务器升级维护或因异常原因无法工作时导致客户端无法正常工作。
105.下面将结合图3和图4来说明当所述客户端是mqtt客户端、所述传输服务器是mqtt服务器、所述网络服务器是http服务器时的基于mqtt协议的通信方法的实现流程,其中,图3是基于mqtt协议的通信方法的流程示意图,图4是对应的三端交互流程图。
106.如图3及图4所示,基于mqtt协议的通信方法包括:
107.首先,执行步骤301,mqtt客户端通过http协议向http服务器发送客户端设备信息,请求获取mqtt服务器配置信息。客户端设备信息包括:客户端设备唯一标识、客户端签名信息、客户端上次获取的配置信息时间戳、客户端系统时间戳。该步骤与图4中mqtt客户向http服务器发送设备信息,请求获取mqtt服务器配置信息步骤相对应。
108.接着执行步骤302,http服务器根据客户端设备信息生成mqtt服务器配置信息通过http协议返回给mqtt客户端。http服务器存储了可用的mqtt服务器配置信息及合法的mqtt客户端信息。
109.当接收到mqtt客户端发送的设备信息后,首先校验设备信息的合法性,校验通过后为mqtt客户端分配mqtt服务器配置信息并返回给mqtt客户端。mqtt服务器配置信息包括:mqtt服务器地址、mqtt主题和配置信息时间戳,使用json格式,示例数据如下:
[0110][0111]
其中url和port是mqtt服务器地址。topic是mqtt主题,mqtt服务器发布mqtt主题,mqtt客户端订阅mqtt主题。conftimestamp是配置信息时间戳。mqtt客户端可以根据配置信息时间戳判断是否更新客户端本地的mqtt服务器配置信息,如果配置信息时间戳小于本地的mqtt服务器配置信息时间戳则表明配置信息不用更换,否则更换本地的mqtt服务器配置信息。
[0112]
配置信息时间戳大于本地的mqtt服务器配置信息时间戳
[0113]
本地的配置信息时间戳小于获取到的配置信息时间戳
[0114]
如果客户端设备信息校验失败又或者当前无可用的mqtt服务器配置信息,则返回错误信息给mqtt客户端,错误信息使用json格式,示例数据如下:
[0115][0116]
其中code是错误码,msg是具体的错误原因,status是状态,状态值false表明请求获取mqtt服务器配置信息失败。该步骤与图4中,http服务器向mqtt客户端分配mqtt服务器地址和主题,将服务器地址和主题打包成mqtt服务器配置信息并返回;mqtt客户端解析出mqtt服务器地址和主题与mqtt服务器连接,订阅mqtt主题相对应。
[0117]
接着执行步骤303,mqtt客户端通过http协议接收到http服务器返回的mqtt服务器配置信息,解析出mqtt服务器地址、mqtt主题和配置信息时间戳。首先将配置信息时间戳与本地的mqtt服务器配置信息时间戳比较,如mqtt客户端本地没有mqtt服务器配置信息又或者本地的配置信息时间戳小于获取到的配置信息时间戳,则更新本地mqtt服务器配置信息,否则忽略本次获取到的mqtt服务器配置信息。
[0118]
如果获取mqtt服务器配置信息失败则每隔一秒向http服务器发一次获取mqtt服务器配置信息请求直至成功。该步骤与图4中,mqtt客户端解析出mqtt服务器地址和主题与mqtt服务器连接,订阅mqtt主题;需要更换mqtt服务器时mqtt服务器通过订阅的主题向mqtt客户端发送新的mqtt服务器地址和主题步相对应。
[0119]
接着执行步骤304、305、306,mqtt客户端通过mqtt协议连接mqtt服务器,如果连接成功则执行步骤307,否则重连,如果连续失败三次则表明mqtt服务器配置信息有问题,则执行步骤301重新获取mqtt服务器配置信息。
[0120]
接着执行步骤307,mqtt客户端成功连接mqtt服务器后,订阅mqtt主题。当mqtt服务器需要更换时,mqtt服务器会通过mqtt主题向mqtt客户端发布新的mqtt服务器配置信息。
[0121]
接着执行步骤308、309,mqtt客户端运行过程中会一直检测是否接收到mqtt服务器通过mqtt主题发布的mqtt服务器配置信息。如果有接收到,首先判断配置信息中的时间戳是否大于本地的配置信息时间戳,如果不大于则丢弃本次接收的mqtt服务器配置信息,否则更新本地配置信息并执行步骤309。步骤309首先断开已经建立的与mqtt服务器的连接然后执行304。该步骤与图4中,mqtt客户端基于接收到的新服务器地址和主题,断开当前连接,与mqtt服务器建立新的连接,并订阅新的主题。
[0122]
接着执行步骤310,当mqtt客户端运行过程中与mqtt服务器间的连接异常断开,即mqtt客户端没有接收到mqtt服务器通过mqtt主题发布的mqtt服务器配置信息的情况下连接断开了,此时mqtt客户端需执行步骤304。该步骤与图4中mqtt服务器与客户端连接异常时mqtt客户端向http服务器发送新的获取新服务器配置信息请求对应,之后继续执行http服务器向mqtt客户端分配mqtt服务器地址和主题,将服务器地址和主题打包成mqtt服务器配置信息并返回,最后mqtt客户端连接新的mqtt服务器,订阅新的主题。
[0123]
综上所述,上述基于mqtt协议的通信方法,通过对mqtt服务器配置信息的动态分
配实现了mqtt客户端与mqtt服务器的动态连接,当mqtt服务器需要更换时能够及时反馈给mqtt客户端,mqtt客户端能够及时连接上新的mqtt服务器并正常工作。
[0124]
图5是本技术提供的一种用于实现图2中所述通信方法的通信系统原理框图。如图5所示,所述通信系统包括客户端,网络服务器以及传输服务器,所述传输服务器包括第一传输服务器和第二传输服务器。
[0125]
在本实施例中,所述客户端通过网络协议从网络服务器获取传输服务器地址及主题,通过传输协议与传输服务器建立连接,向传输服务器发送订阅信息及接收传输服务器的推送消息。
[0126]
在本实施例中,所述网络服务器用于通过网络协议对客户端进行传输服务器地址分配和主题分配。
[0127]
在本实施例中,所述传输服务器通过传输协议与客户端动态连接,并用于接收客户端发送的订阅信息以及向客户端发送推送消息。
[0128]
其中,所述客户端,所述网络服务器以及所述传输服务器三者被配置为:所述客户端向网络服务器发送客户端设备信息;所述网络服务器根据所述客户端设备信息生成第一传输服务器配置信息并返回给所述客户端;所述客户端根据接收到的所述第一传输服务器配置信息与所述第一传输服务器建立连接,订阅第一主题;当所述第一传输服务器需要更换时,所述第一传输服务器通过所述第一主题向所述客户端发布第二传输服务器配置信息;所述客户端根据所述第二传输服务器配置信息与第二传输服务器建立连接,并订阅第二主题。
[0129]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0130]
以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1