一种基于MQTT和B/S架构的通信方法、装置、设备及存储介质与流程
未命名
07-23
阅读:190
评论:0

一种基于mqtt和b/s架构的通信方法、装置、设备及存储介质
技术领域
1.本发明涉及通信领域,更具体地,涉及一种基于mqtt和b/s架构的通信方法、装置、设备及存储介质。
背景技术:
2.随着物联网技术的发展,mqtt协议已经成为物联网设备通信的重要协议之一。mqtt协议是一个轻量级的发布/订阅消息传输协议,能够在低带宽和不稳定的网络环境中提供可靠的服务。然而,在使用基于mqtt协议开发的模拟车机信号通信软件手动发送信号进行模拟通信时,不能对软件代码和报文进行回归测试和数据回显,以及修改报文格式属性,会大大降低开发人员的通信测试效率,提高了通信测试成本。
技术实现要素:
3.本发明为克服现有技术存在的不能对软件代码和报文进行回归测试和数据回显,以及修改报文格式属性,导致开发人员的通信测试效率低及通信测试成本高的缺陷,提出如下技术方案:
4.第一个方面,本发明提出一种基于mqtt和b/s架构的通信方法,包括:
5.浏览器配置mqtt的连接参数。
6.确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本。
7.执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。
8.作为优选的技术方案,在浏览器配置mqtt的连接参数时,所述方法还包括:将配置mqtt的连接参数所需的api接口地址存储到数据库。
9.作为优选的技术方案,所述消息发送端和消息接收端包括车端、app端和云端。
10.作为优选的技术方案,所述通信配置被设置为:消息发送端在浏览器指定一个topic向服务器发送通信报文;订阅相应topic的服务器接收到通信报文后,向消息接收端发布接收报文;消息接收端接收到接收报文后,通过服务器向浏览器回传回复报文。
11.作为优选的技术方案,所述通信配置被设置为:消息发送端向服务器发送通信报文之前,将车端或app端登录至mqtt。
12.作为优选的技术方案,所述将车端或app端登录至mqtt,具体包括:
13.车端或app端在浏览器向服务器发送socket登录指令。
14.服务器收到socket登录指令后,创建mqtt代理服务器并订阅车端或app端登录至所述mqtt代理服务器的topic。
15.服务器向车端或app端发布登录报文,车端或app端接收登录报文,连接至所述mqtt代理服务器。
16.作为优选的技术方案,当服务器接收到的通信报文存在替换参数时,服务器根据
替换参数,向消息接收端发送a*b条接收报文,其中a为替换参数的组数,b为每组替换参数中的参数个数;且每条接收报文中代表固定的requestid的字段
‘
r’的值根据替换参数,按照“当前毫秒时间戳+当前报文的序号”的格式进行封装替换。
17.第二个方面,本发明还提出一种基于mqtt和b/s架构的通信装置,包括:
18.配置模块,用于在浏览器配置mqtt的连接参数。
19.封装模块,用于确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本。
20.执行模块,用于执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。
21.第三个方面,本发明还提出一种计算设备,所述计算设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如第一个方面中任一方案所述的基于mqtt和b/s架构的通信方法所执行的操作。
22.第四个方面,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有程序,所述程序被处理器执行如第一个方面中任一方案所述的基于mqtt和b/s架构的通信方法所执行的操作。
23.与现有技术相比,本发明技术方案的有益效果是:本发明基于mqtt和b/s架构将所需通信配置和通信报文脚本化,通过调用mqtt已有接口,可以配置多个运行环境,通过执行脚本,用户使用浏览器访问对应的网址即可自动化模拟信号通信流程,在前端实现消息发送端和消息接收端的通信报文可视化,方便开发人员进行回归测试和数据回显,并修改报文格式属性,极大地提高了报文的反复利用率,从而实现了高效率的通信测试工作,减少了测试成本。
附图说明
24.图1为本技术实施例所提供的基于mqtt和b/s架构的通信方法的流程示意图。
25.图2为本技术实施例中车端、app端和云端进行通信交互的示意图。
26.图3为本技术实施例在封装脚本时调试页面的具体结构示意图。
27.图4为本技术实施例中app端到车端的通信交互流程图。
28.图5为本技术实施例的基于mqtt和b/s架构的通信装置的架构图。
29.图6为本技术实施例提供的计算设备的结构示意图。
具体实施方式
30.以下将参照附图和优选的技术方案来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选的技术方案仅为了说明本发明,而不是为了限制本发明的保护范围。
31.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也
可能更为复杂。
32.在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
33.具体而言,图1为本技术实施例所提供的基于mqtt和b/s架构的通信方法的流程示意图。
34.如图1所示,该基于mqtt和b/s架构的通信方法包括以下步骤:
35.s101:浏览器配置mqtt的连接参数。
36.在具体实施过程中,包括在运行环境、app端和车端中的浏览器配置mqtt的连接参数。
37.可选地,在本技术的一个实施例中,在浏览器配置mqtt的连接参数时,将配置mqtt的连接参数所需的api接口地址存储到数据库。
38.可以理解的是,本技术实施例通过将配置mqtt的连接参数所需的api接口地址存储到数据库,对api接口地址及后续的通信报文进行统一的存储,可以避免用户过多的输入,方便开发人员验证和回显,且与任务相关联的脚本发送和接收的报文都可以在前端可视化,减少用户频繁输入,通过执行脚本并自动化模拟整个信号通信过程,极大地提高了通信报文的反复利用率,从而实现了高效率的测试工作。
39.s102:确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本。
40.可选地,在本技术的一个实施例中,所述消息发送端和消息接收端包括车端、app端和云端。
41.如图2所示,图2为本技术实施例中车端、app端和云端进行通信交互的示意图。
42.可以理解的是,本技术实施例的通信方(消息发送端和消息接收端)具体包括车端、app端和云端三个角色,由于通信过程是双向的,故每一个端都可能成为发送端和接收端,这里的消息发送端是告诉mqtt此次通信流程从哪里开始,可以将两端之间的通信报文及所需通信配置打包为多个脚本,在测试时只需执行该脚本,即可实现车云团队对mqtt通信的报文进行脚本化和场景化管理。
43.s103:执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。
44.可选地,在本技术的一个实施例中,所述通信配置被设置为:消息发送端在浏览器指定一个topic向服务器发送通信报文;订阅相应topic的服务器接收到通信报文后,向消息接收端发布接收报文;消息接收端接收到接收报文后,通过服务器向浏览器回传回复报文。
45.在具体实施过程中,在通信系统的调试页面可以模拟两端之间的通信。消息发送端在浏览器点击发送后,指定一个topic类型为“mqttmsg”事件向服务器发送通信报文,订阅“mqttmsg”事件对应的payload的服务器接收到通信报文后会收到socket指令,按照向“mqttmsg”事件模拟通信,向消息接收端发布接收报文;消息接收端接收到接收报文后,通过服务器向浏览器回传回复报文,实现浏览器与服务器的通信,同时消息接收端收到的回
复报文也会通过“mqttmsg”事件传回并展示在浏览器,实现了一套完整的通信流程。
46.可以理解的是,本技术实施例在前端实现app端与车端发送、接收报文可视化,方便开发人员进行验证和回显,另外与任务相关联的脚本中的发送报文或接收报文都可以在前端可视化。
47.另外,消息发送端向服务器发送通信报文之前,将车端或app端登录至mqtt,实现与mqtt的连接。
48.在具体实施过程中,车端或app端在浏览器通过socket“loginmsg”向服务器发送socket登录指令;服务器收到socket登录指令后,创建mqtt代理服务器并订阅车端或app端登录至所述mqtt代理服务器的topic;服务器向车端或app端发布登录报文,车端或app端接收登录报文,连接至所述mqtt代理服务器。
49.可选地,在本技术的一个实施例中,当服务器接收到的通信报文存在替换参数时,服务器根据替换参数,向消息接收端发送a*b条接收报文,其中a为替换参数的组数,b为每组替换参数中的参数个数;且每条接收报文中代表固定的requestid的字段
‘
r’的值根据替换参数,按照“当前毫秒时间戳+当前报文的序号”的格式进行封装替换。
50.如图3所示,图3为本技术实施例在封装脚本时调试页面的具体结构示意图,从上至下包括app端与车端登录成功与否的提示、通信接收端接收到的具体json报文以及通信发送端发送的具体json报文。其中在通信发送端发送的具体json报文里有“替换变量”的字段,采用{
‘
变量1’:[值1,值2],
‘
变量2’:[值1,值2]}的格式,同时通信报文中需要替换的变量,变量值采用“$变量1$”,“$变量2$”的格式进行替换。
[0051]
在具体实施过程中,在调试页面输入需要发送的通信报文、替换的参数a及参数值b1,b2....,同时在发送报文中将要被替换的属性的值更改为“$a$”。然后点击发送,为了报文的时效性,服务器会根据接收到的替换参数来发送替换参数组数a*每组参数个数(b1+b2+b3...+bn)条报文,且每条报文的字段r的值会按照“当前毫秒时间戳+当前报文的序号的格式”进行封装,同时要替换的字段的值也会按照参数组一一更改,然后服务器按照订阅topic、发送报文的顺序进行通信。如图4所示,图4为本技术实施例中app端到车端的通信交互流程图,在mqtt消息接收端,例如车端,会接收到a*b条接收报文,此时的接收报文的r字段已为最新。车端接收到最新的接收报文后,如若想发送回复报文到app端,需要将车端接收报文中的r字段的不同的值再一次进行上述的封装过程,来替换车端发送回复报文中的r字段,即消息发送端和消息接收端使用同一个requestid代表一个完成的流程。
[0052]
可以理解的是,本技术实施例以用例和任务相结合的参数化方式,消息发送端通过在通信报文中设置替换参数来实现一次发送多条报文,对报文格式进行属性的更改的效果。
[0053]
可以理解的是,本技术实施例基于mqtt和b/s架构将所需通信配置和通信报文脚本化,通过调用mqtt已有接口,可以配置多个运行环境,通过执行脚本,用户使用浏览器访问对应的网址即可自动化模拟信号通信流程,在前端实现消息发送端和消息接收端的通信报文可视化,方便开发人员进行回归测试和数据回显,并修改报文格式属性,极大地提高了报文的反复利用率,从而实现了高效率的通信测试工作,减少了测试成本。
[0054]
其次参照附图描述根据本技术实施例提出的基于mqtt和b/s架构的通信装置。
[0055]
图5是本技术实施例的基于mqtt和b/s架构的通信装置的架构图。
[0056]
如图5所示,该通信装置包括:配置模块100、封装模块200和执行模块300。
[0057]
其中,配置模块100用于在浏览器配置mqtt的连接参数。封装模块200用于确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本。执行模块300用于执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。
[0058]
需要说明的是,前述对基于mqtt和b/s架构的通信方法实施例的解释说明也适用于该实施例的基于mqtt和b/s架构的通信装置,此处不再赘述。
[0059]
可以理解的是,本技术实施例基于mqtt和b/s架构实现,构建一套完整的通信装置,进行功能开发调试,用户无需安装额外的客户端软件,使用浏览器访问对应的网址即可模拟车机信号通信流程,降低了操作门槛和使用终端的性能要求。
[0060]
图6为本技术实施例提供的计算设备400的结构示意图。该计算设备400包括:存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序。
[0061]
处理器402执行程序时实现上述实施例中提供的基于mqtt和b/s架构的通信方法。
[0062]
进一步地,计算设备400还包括:通信接口403,用于存储器401和处理器402之间的通信。
[0063]
存储器401可能包含高速ram(randomaccessmemory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
[0064]
如果存储器401、处理器402和通信接口403独立实现,则通信接口403、存储器401和处理器402可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0065]
可选的,在具体实现上,如果存储器401、处理器402及通信接口403,集成在一块芯片上实现,则存储器401、处理器402及通信接口403可以通过内部接口完成相互间的通信。
[0066]
处理器402可能是一个cpu(centralprocessingunit,中央处理器),或者是asic(applicationspecificintegratedcircuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0067]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的基于mqtt和b/s架构的通信方法。
[0068]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0069]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0070]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0071]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
[0072]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0073]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
技术特征:
1.一种基于mqtt和b/s架构的通信方法,其特征在于,包括:浏览器配置mqtt的连接参数;确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本;执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。2.根据权利要求1所述的基于mqtt和b/s架构的通信方法,其特征在于,在浏览器配置mqtt的连接参数时,所述方法还包括:将配置mqtt的连接参数所需的api接口地址存储到数据库。3.根据权利要求1所述的基于mqtt和b/s架构的通信方法,其特征在于,所述消息发送端和消息接收端包括车端、app端和云端。4.根据权利要求3所述的基于mqtt和b/s架构的通信方法,其特征在于,所述通信配置被设置为:消息发送端在浏览器指定一个topic向服务器发送通信报文;订阅相应topic的服务器接收到通信报文后,向消息接收端发布接收报文;消息接收端接收到接收报文后,通过服务器向浏览器回传回复报文。5.根据权利要求4所述的基于mqtt和b/s架构的通信方法,其特征在于,所述通信配置被设置为:消息发送端向服务器发送通信报文之前,将车端或app端登录至mqtt。6.根据权利要求5所述的基于mqtt和b/s架构的通信方法,其特征在于,所述将车端或app端登录至mqtt,具体包括:车端或app端在浏览器向服务器发送socket登录指令;服务器收到socket登录指令后,创建mqtt代理服务器并订阅车端或app端登录至所述mqtt代理服务器的topic;服务器向车端或app端发布登录报文,车端或app端接收登录报文,连接至所述mqtt代理服务器。7.根据权利要求4所述的基于mqtt和b/s架构的通信方法,其特征在于,当服务器接收到的通信报文存在替换参数时,服务器根据替换参数,向消息接收端发送a*b条接收报文,其中a为替换参数的组数,b为每组替换参数中的参数个数;且每条接收报文中代表固定的requestid的字段
‘
r’的值根据替换参数,按照“当前毫秒时间戳+当前报文的序号”的格式进行封装替换。8.一种基于mqtt和b/s架构的通信装置,其特征在于,包括:配置模块,用于在浏览器配置mqtt的连接参数;封装模块,用于确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本;执行模块,用于执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。9.一种计算设备,其特征在于,所述计算设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的基于mqtt和b/s架构的通信方法所执行的操作。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有程序,所述程序被处理器执行如权利要求1至7中任一项所述的基于mqtt和b/s架构的通信方法所执行的操作。
技术总结
本发明涉及通信领域,公开了一种基于MQTT和B/S架构的通信方法、装置、设备及存储介质,其中方法包括:浏览器配置MQTT的连接参数;确定消息发送端,以所述连接参数作为脚本的输入参数,将消息发送端向消息接收端发出的通信报文以及通信配置封装为若干个脚本;执行脚本,服务器根据通信配置和通信报文完成消息发送端和消息接收端之间信号传输。本发明在前端实现消息发送端和消息接收端的通信报文可视化,方便开发人员进行回归测试和数据回显,并修改报文格式属性,极大地提高了报文的反复利用率,从而实现了高效率的通信测试工作,减少了测试成本。测试成本。测试成本。
技术研发人员:李淳
受保护的技术使用者:重庆长安汽车股份有限公司
技术研发日:2023.03.24
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/