一种协议之间相互转换的方法

文档序号:26750304发布日期:2021-09-25 02:17阅读:63来源:国知局
一种协议之间相互转换的方法

1.本发明涉及互联网领域和物联网领域,尤其涉及一种协议之间相互转换的方法。


背景技术:

2.随着近些年来物联网技术的发展,物联网的应用领域不断扩大,覆盖了从智能家居、无人驾驶到“智慧城市”等各种领域,物联网早已从新兴产物转变为了信息化社会不可或缺的存在。而互联网是信息化社会的基础设施。因此,将互联网与物联网互联互通,使得互联网设备与物联网设备能够相互通信是一个自然而然的需求。例如,在环境数据采集这一场景中,部署在户外的传感器终端将收集的数据传回物联网网关,网关将数据处理并存储至服务器,服务器为科研人员等用户提供互联网访问接口用于访问收集到的数据。
3.mqtt协议是物联网领域的常用协议,http/https协议是互联网领域的基础协议。物联网设备普遍性能较低,一般不使用http/https协议,而互联网设备普遍也不支持mqtt协议。如果需要进行互联网设备与物联网设备之间的通信就需要双方中的某一方支持对方的协议,但是市面上的设备厂商数不胜数,要让设备对于协议的支持趋向统一是一件难以完成的任务。因此,对于这一现状,我们需要一种方法来实现http/https协议与mqtt协议之间的转换。


技术实现要素:

4.本发明的实施例提供了一种协议之间相互转换的方法,能够提升数据传输效率。
5.一种协议之间相互转换的方法,包括如下步骤:
6.步骤1,预先建立一个发布订阅列表,所述发布订阅列表用于记录发布者与订阅者之间的发布订阅关系、发布者所采用的协议类型以及订阅者所采用的协议类型;
7.步骤2,当接收到发布者发布的报文时,根据所述发布订阅列表,查找所述报文的协议类型;根据所述报文的协议类型,从所述报文中提取报文数据载荷;
8.判断3,判断所述报文数据载荷的大小是否小于预先设定的合并阈值;若是,则进入步骤4;若否,则进入步骤5;
9.步骤4,将所述报文数据载荷送入所述发布者的报文数据载荷队列中,待所述报文数据载荷队列的大小达到设定的发送阈值或在超过设定的等待时长后仍未接收到新报文时,将所述报文数据载荷队列中的报文数据载荷进行合并处理,然后进入步骤5;
10.步骤5,在所述发布订阅列表中查找所述发布者对应的所有订阅者;
11.步骤6,逐一根据对应的所述订阅者所采用的协议类型,对所述报文进行协议转换,并将协议转换后的报文发送给相应的订阅者。
12.由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,步骤1,预先建立一个发布订阅列表,所述发布订阅列表用于记录发布者与订阅者之间的发布订阅关系、发布者所采用的协议类型以及订阅者所采用的协议类型;步骤2,当接收到发布者发布的报文时,根据所述发布订阅列表,查找所述报文的协议类型;根据所述报文的协议类型,
从所述报文中提取报文数据载荷;判断3,判断所述报文数据载荷的大小是否小于预先设定的合并阈值;若是,则进入步骤4;若否,则进入步骤5;步骤4,将所述报文数据载荷送入所述发布者的报文数据载荷队列中,待所述报文数据载荷队列的大小达到设定的发送阈值或在超过设定的等待时长后仍未接收到新报文时,将所述报文数据载荷队列中的报文数据载荷进行合并处理,然后进入步骤5;步骤5,在所述发布订阅列表中查找所述发布者对应的所有订阅者;步骤6,逐一根据对应的所述订阅者的协议类型,对所述报文进行协议转换,并将协议转换后的报文发送给相应的订阅者。采用本发明,能够提升数据传输效率。
13.本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
14.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1为本发明的协议的转换方法的流程示意图;
16.图2示出了本发明转换方法的运行环境结构示意图;
17.图3示出了本发明转换方法的工作流程图;
18.图4示出了转换方法中数据载荷队列等待超时处理的工作流程图。
具体实施方式
19.下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
20.为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
21.图1为本发明的协议的转换方法的流程示意图;图2示出了本发明转换方法的运行环境结构示意图;图3示出了本发明转换方法的工作流程图;图4示出了转换方法中报文数据载荷队列等待超时处理的工作流程图。以下结合各图进行描述。
22.如图1所示,一种协议之间相互转换的方法,包括如下步骤:
23.步骤1,服务器预先建立一个发布订阅列表,所述发布订阅列表用于记录发布者与订阅者之间的发布订阅关系、发布者所采用的协议类型以及订阅者所采用的协议类型;
24.步骤2,当接收到发布者发布的报文时,服务器根据所述发布订阅列表,查找所述报文的协议类型;根据所述报文的协议类型,从所述报文中提取报文数据载荷;
25.判断3,服务器判断所述报文数据载荷的大小是否小于预先设定的合并阈值;若是,则进入步骤4;若否,则进入步骤5;
26.步骤4,服务器将所述报文数据载荷送入所述发布者的报文数据载荷队列中,待所述报文数据载荷队列的大小达到设定的发送阈值或在超过设定的等待时长后仍未接收到新报文时,将所述报文数据载荷队列中的报文数据载荷进行合并处理,然后进入步骤5;
27.步骤5,服务器在所述发布订阅列表中查找所述发布者对应的所有订阅者;
28.步骤6,服务器逐一根据对应的所述订阅者所采用的协议类型,对所述报文进行协议转换,并将协议转换后的报文发送给相应订阅者。
29.所述步骤1之前,所述方法还包括:
30.步骤a,服务器根据网络状态,设置所述合并阈值、所述发送阈值以及所述等待时长。
31.所述步骤a具体为:
32.服务器将所述合并阈值设定为所述发布者所发送的报文数据载荷历史平均大小的50%;
33.服务器将所述发送阈值设定为所述发布者所发送的报文数据载荷历史平均大小;
34.服务器将所述等待时长设定为所述发布者的报文数据载荷队列接收到连续数据载荷时的报文数据载荷到达时间的间隔时长的历史平均值。
35.所述步骤6具体为:
36.步骤61,服务器对所述报文数据载荷进行编码处理;
37.步骤62,服务器根据编码处理后的所述报文数据载荷,构建所述订阅者所采用协议类型的相应的报文。
38.所述步骤61具体为:服务器对合并的报文数据载荷进行编码处理。
39.进一步说:
40.当所述订阅者采用的协议类型为http/https协议时,使用utf

8编码格式对所述报文数据载荷进行编码;
41.当所述订阅者采用的协议类型为mqtt协议时,使用二进制编码格式对所述报文数据载荷进行编码。
42.所述步骤62具体为:
43.当所述订阅者采用的协议类型为http协议时,使用http报文格式来构建报文;
44.当所述订阅者采用的协议类型为https协议时,使用http报文格式来构建报文,并使用ssl/tls协议加密报文;
45.当所述订阅者采用的协议类型为mqtt协议时,使用mqtt报文格式来构建报文。
46.以下描述本发明的应用场景。如图2、图3、图4所示,一种mqtt协议与http/https协议之间相互转换的方法,包括如下步骤:
47.步骤a)在进行协议转换前,根据网络状态与应用需求先设置合并阈值、发送阈值与等待时长,网络状态良好时适当增大合并阈值、发送阈值与等待时长;对于延迟不敏感的应用适当增大合并阈值、发送阈值与等待时长。将合并阈值设定为该发布者所发送的报文数据载荷历史平均大小的50%,将发送阈值设定为该发布者所发送的数据载荷历史平均大小,将等待时长设定为发布者的报文数据载荷队列接收到连续数据载荷时数据载荷到达时间的间隔时长的历史平均值。
48.步骤1),定义一个发布/订阅列表,用于记录设备间的发布订阅关系以及设备所使用的协议类型;定期更新1)中的发布/订阅列表;
49.步骤2),接收到发布者发布的报文时,判断其报文协议类型,提取报文数据载荷;
50.步骤3),判断2)中所提取的报文数据载荷的大小是否小于设定的合并阈值,若是,
进行步骤4);若否,进行步骤5);
51.步骤4),将相应报文数据载荷送入所述发布者的报文数据载荷队列中,待队列数据总大小达到设定的发送阈值或超过设定的等待时长后,将队列中的数据进行合并处理,进行步骤5);
52.步骤5),在发布/订阅列表中查找该发布者所属的所有订阅者,根据订阅者所属协议将数据打包,将打包完成的报文发送给订阅者。
53.本发明用于实现使用mqtt协议的物联网设备与使用http/https的互联网设备之间的信息交换。
54.以下描述另一个应用场景。
55.本发明提供了一种mqtt协议与http/https协议之间相互转换的方法。
56.1)运行该方法的机器维护一个发布/订阅列表;
57.2)接收到发布者发送的报文时,判断报文协议是mqtt协议还是http/https协议,根据协议结构提取报文数据载荷;
58.3)判断报文数据载荷大小是否小于设定的发送阈值,若是,则送入该发布者的数据载荷队列,待队列中的数据载荷总大小达到了发送阈值后将数据载荷合并,准备发出;若否,直接准备发出;
59.4)在发布/订阅列表中查找该报文发布者的所有订阅者;
60.5)根据订阅列表中订阅者所使用的报文协议,对数据载荷进行编码,再按照相应报文格式进行打包;
61.6)将打包完成后的报文发送给订阅者;
62.本发明结构清晰、易于扩展,且能提升数据传输效率,直接部署于现有的mqtt网关即可使用。
63.以下描述另一个应用场景。
64.如图1所示的一种mqtt协议与http/https协议之间相互转换的方法,包括如下步骤:
65.1)数据接收:(服务器)接收到报文后首先判断报文协议是mqtt协议、http协议和https协议中的哪一种。
66.2)数据提取:按照报文协议结构,提取1)中接收到的报文中的数据载荷。
67.3)数据合并:判断2)中提取的数据载荷是否小于设定的合并阈值,若是,则送入该发布者的数据载荷队列,待队列数据总大小达到设定的发送阈值或超过设定的等待时长后,将队列中的数据进行合并处理,准备发送;若否,则无需送入队列,直接准备发送。
68.4)查找订阅:查找报文发送方的订阅者列表。
69.5)数据编码:根据3)中查找得到的订阅者列表,来确定对运行不同协议的订阅者进行相应的数据编码,具体步骤如下:
70.①
订阅者端为http/https协议时:使用utf

8编码格式将3)中得到的数据进行编码。
71.②
订阅者端为mqtt协议时:使用二进制编码格式将3)中得到的数据进行编码。
72.6)构建报文:根据4)中查找得到的订阅者列表,来确定如何将5)中编码后的数据构建为相应协议报文,具体步骤如下:
73.①
订阅者为http协议时,使用http报文格式来构建报文。
74.②
订阅者为https协议时,使用http报文格式来构建报文,并使用ssl/tls协议加密报文。
75.③
订阅者为mqtt协议时,使用mqtt报文格式来构建报文。
76.7)发送报文:将5)中构建好的报文发送给订阅者。
77.本发明提供了一种mqtt协议与http/https协议之间相互转换的方法。该方法首先定义了一个发布/订阅列表,用于记录设备间的发布订阅关系与设备采用的协议类型。当接收到发布者报文时,根据协议类型进行解包,提取数据载荷,判断数据载荷大小是否小于设定好的阈值,若是,则将数据载荷送入该发布者的数据载荷队列,再根据动态控制策略来合并队列数据载荷;若否,则直接进入封包过程。通过查询发布/订阅列表得到该发布者的订阅者,根据订阅者所使用的不同协议来进行封包并发送。本发明通过数据载荷合并的手段,在实现mqtt协议与http/https协议转换的同时提升了数据传输效率。
78.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1