一种车联网数据通信方法、装置、设备及介质与流程
未命名
10-19
阅读:65
评论:0
1.本技术实施例涉及信息传输技术领域,尤其涉及一种车联网数据通信方法、装置、设备及介质。
背景技术:
2.mqtt(message queuing telemetry transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,在物联网、小型设备、移动应用等方面有较广泛的应用。
3.然而,目前的mqtt协议接入服务存在以下问题:设备客户端需要与多个后端服务进行交互,导致mqtt消息类型繁多,解析和处理复杂;设备客户端发送的消息可能超过后端服务的处理能力,导致消息堆积或丢失;设备客户端订阅的消息可能需要不同的qos(quality of service,服务质量)级别,导致消息传输不稳定或不及时。
技术实现要素:
4.本技术提供一种车联网数据通信方法、装置、设备及介质,可以防止消息堆积或丢失,保证消息传输的稳定性和可靠性。
5.第一方面,提供一种车联网数据通信方法,包括:
6.获取消息发送方发送的mqtt消息的消息数量和发送频率;
7.根据采集到的服务器的负载指标确认所述服务器的负载情况;
8.根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制;
9.根据消息接收方订阅的主题和qos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方。
10.优选地,在所述获取消息发送方发送的mqtt消息的消息数量和发送频率之前,还包括:
11.接收消息发送方基于mqtt协议发送的mqtt消息;
12.对接收到的所述mqtt消息进行解析,以得到消息类型;
13.根据所述消息类型,调用与所述消息类型对应的后端服务以执行与所述消息类型对应的业务流程。
14.优选地,所述根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制,包括:
15.获取每条mqtt消息的优先级和到达时间;
16.根据所述mqtt消息的优先级和到达时间对所述mqtt消息进行排序,以得到mqtt消息队列,所述mqtt消息队列用于缓存多个消息发送方发送的mqtt消息;
17.根据所述服务器的负载情况,动态调整所述mqtt消息队列的长度和发送频率,以确保所述服务器不会过载或者闲置,所述mqtt消息队列的长度为所述mqtt消息队列中缓存
的mqtt消息数量。
18.优选地,所述根据所述服务器的负载情况,动态调整所述mqtt消息队列的长度,包括:
19.当所述mqtt消息队列的长度达到第一阈值时,发送pubrec消息至所述消息发送方,以使所述消息发送方暂停发送新的mqtt消息;
20.当所述mqtt消息队列的长度下降到第二阈值时,发送pubrel消息至所述消息发送方,以允许所述消息发送方恢复发送新的mqtt消息,所述第一阈值大于所述第二阈值。
21.优选地,所述方法还包括:
22.在所述服务器的负载情况到达预设阈值时,发送pubrec消息至所述消息发送方,以使所述消息发送方暂停发送新的mqtt消息,直到收到pubrel消息为止。
23.优选地,所述方法还包括:
24.在所述消息发送方发送的mqtt消息的消息数量到达预设阈值且包含预设数量的无效或者恶意消息时,发送disconnect消息至所述消息发送方,以使所述消息发送方关闭连接。
25.优选地,所述根据消息接收方订阅的主题和qos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方之前,还包括:
26.利用第三方auth中心对所述消息接收方进行身份验证,以根据所述第三方auth中心返回的验证结果决定是否接受所述消息接收方的订阅。
27.第二方面,提供一种车联网数据通信装置,包括:
28.获取模块,用于获取消息发送方发送的mqtt消息的消息数量和发送频率;
29.确认模块,用于根据采集到的服务器的负载指标确认所述服务器的负载情况;
30.控制模块,用于根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制;
31.发送模块,用于根据消息接收方订阅的主题和gos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方。
32.第三方面,提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中的方法。
33.第四方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
34.第五方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中的方法。
35.第六方面,提供一种计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
36.本技术提供的技术方案,先获取消息发送方发送的mqtt消息的消息数量和发送频率;然后根据采集到的服务器的负载指标确认服务器的负载情况;根据mqtt消息的消息数量、发送频率和/或服务器的负载情况,对mqtt消息的流量进行控制;这样可以防止消息堆积或丢失,保证消息传输的稳定性和可靠性,同时也可以根据后端服务的处理能力,动态调整流速,避免资源浪费或拥塞;最后根据消息接收方订阅的主题和qos级别,将mqtt消息发
送给对应的消息接收方并确认mqtt消息是否成功到达消息接收方。从而保证了消息传输的及时性和完整性。
附图说明
37.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本技术实施例提供的一种应用场景图;
39.图2为本技术实施例提供的一种车联网数据通信方法的流程图;
40.图3为本技术实施例提供的另一种车联网数据通信方法的流程图;
41.图4为本技术实施例提供的一种车联网数据通信装置的示意图;
42.图5是本技术实施例提供的一种电子设备的示意性框图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
45.如上所述,在车联网领域中存在大量的数据发布和订阅场景,如车辆获取路况信息、导航信息、娱乐信息等,或者车辆发布自身状态信息、安全警告信息、救援信息等。这些场景需要有效地管理数据发布者和订阅者之间的匹配关系,以实现数据的精准投递和消费。
46.目前的mqtt协议接入服务存在以下问题:设备客户端例如车辆需要与多个后端服务进行交互,导致mqtt消息类型繁多,解析和处理复杂;设备客户端发送的消息可能超过后端服务的处理能力,导致消息堆积或丢失;设备客户端订阅的消息可能需要不同的qos级别,导致消息传输不稳定或不及时。
47.为了解决上述技术问题,本技术的发明构思是:提供一种车联网数据通信方法,用于实现车辆的mqtt协议接入和数据传输,可以防止消息堆积或丢失,以提高车辆通信的效率和安全性。
48.应理解的是,本技术技术方案可以应用于如下场景,但不限于:
49.在一些可实现方式中,图1为本技术实施例提供的一种应用场景图,如图1所示,该
车联网场景中可以包括第一客户端110、服务器120以及第二客户端130。第一客户端110、第二客户端130可以通过mqtt协议与服务器120建立连接。
50.示例性的,第一客户端110可以是安装在车辆上的车载终端等,但不限于此。第二客户端130可以是安装在另一车辆上的车载终端,或第三方平台的其他电子设备,例如计算机、平板电脑等,但不限于此。在本技术的一种实施例中,第一客户端110可以作为消息发送方向服务器120发送mqtt消息,进一步地,服务器120可以接收第一客户端110发送的mqtt消息并将mqtt消息转发至第二客户端130,第二客户端130可以作为消息接收方接收服务器120转发的mqtt消息。
51.此外,图1示例性地给出了一个第一客户端110以及一个第二客户端130,实际上可以包括其他数量的客户端,本技术对此不作限制。
52.在介绍了本技术实施例的应用场景之后,下面将对本技术技术方案进行详细阐述:
53.图2为本技术实施例提供的一种车联网数据通信方法的流程图,应用于服务器,该方法可以包括如下步骤:
54.s210:获取消息发送方发送的mqtt消息的消息数量和发送频率。
55.本步骤中,消息发送方,例如车辆可通过车载终端向服务器发送mqtt消息,mqtt消息包括主题(topic)和负载(payload)两部分,消息发送方可先根据消息类型以及消息接收方的客户端标识构造二级主题和三级主题,其中,二级主题为消息类型,三级主题为消息接收方的客户端标识,然后将二级主题和三级主题作为主题以及将消息内容作为负载,创建mqtt消息。
56.本实施例中,车辆中可安装车辆状态监控模块,例如传感器,用于收集车辆的实时状态信息,如速度、位置、油耗等,这些信息可作为mqtt消息负载传输,并在服务器中进行分析处理。
57.可以理解的是,消息发送方在发送mqtt消息时是按照一定的发送频率发送的,示例性地,可以按照100条/秒的发送频率发送mqtt消息,进而可根据发送频率和时间得到消息发送方发送的mqtt消息的消息数量。
58.进一步地,在接收到消息发送方基于mqtt协议发送的mqtt消息之后,可根据mqtt协议规范先对接收到的mqtt消息进行解析,以得到主题和负载;主题携带有消息类型,然后可根据消息类型,调用与消息类型对应的后端服务以执行与消息类型对应的业务流程。示例性地,消息类型可以为车辆注册、登录、订阅、发布等,对应地,在根据不同的消息类型调用相应的后端服务完成相关业务流程之后,可向车辆返回适当的应答,例如connack、suback、puback等。
59.本实施例中,可以根据车联网场景中的不同设备或业务的特点,自定义消息主题和格式,以实现设备平台通信的个性化配置,满足不同用户或行业的需求,例如:主题为/vehicle/login表示车辆登入;/vehicle/realtime表示实时信息上报。
60.本实施例中,服务器可根据解析出的消息类型,调用相应的后端服务完成相关业务流程,并向车辆返回适当的应答,这样可以简化mqtt消息的解析和处理过程,减少消息类型的繁多和复杂性,提高业务处理的效率和灵活性。
61.示例性地,车辆传感器收集车辆的实时状态信息,如速度、位置、油耗等,这些信息
可作为mqtt消息传输,并在服务器中进行分析处理。车辆的控制模块通过接收来自服务器的远程控制指令,如远程启动、远程解锁等,服务器将根据这些指令通过接入服务发送给对应车辆。车辆的安全模块用于实时监控车辆安全状态,如碰撞检测、行驶区域限制等,服务器根据收到的安全信息进行处理,如发送报警通知等。
62.s220:根据采集到的服务器的负载指标确认服务器的负载情况。
63.示例性地,可定期检测服务器的处理能力,例如,可实时采集服务器的负载指标,负载指标包括但不限于cpu利用率、内存占用率、响应时间等。然后分别为cpu利用率、内存占用率、响应时间分配一个权重值,最后基于负载指标和相应权重评估负载情况,负载情况可为一个数值,该数值用于表征服务器负载的高或低。
64.可以理解的是,在评估负载情况时,可先对cpu利用率、内存占用率、响应时间进行归一化处理,归一化后的取值可以由用户设置,例如,当cpu利用率为90%~99%时,可将cpu利用率取值为1,当cpu利用率为80%~89%时,可将cpu利用率取值为2,同理,可对内存占用率、响应时间进行相应归一化处理,此处不再赘述。
65.s230:根据mqtt消息的消息数量、发送频率和/或服务器的负载情况,对mqtt消息的流量进行控制。
66.s240:根据消息接收方订阅的主题和qos级别,将mqtt消息发送给对应的消息接收方并确认mqtt消息是否成功到达所述消息接收方。
67.消息发送方根据消息接收方订阅的主题和qos级别,将相应的消息发送给消息接收方,例如发送publish、pubcomp等消息给消息接收方,并根据qos级别确认消息是否成功到达。
68.本实施例中,通过对车辆发送的mqtt消息的流速进行控制,可防止mqtt消息的堆积或丢失,从而保证了消息传输的稳定性和可靠性。通过将消息接收方订阅的mqtt消息按照约定好的qos级别发送给消息接收方,并根据qos级别确认消息是否成功到达,保证了消息传输的及时性和完整性。
69.在另一种实施例中,在步骤s240之前,还包括:
70.s250:利用第三方auth中心对消息接收方进行身份验证,以根据第三方auth中心返回的验证结果决定是否接受消息接收方的订阅。
71.本步骤中,在消息接收方连接或者订阅时,可通过插件方式实现设备身份验证,示例性地,可以通过第三方auth中心进行验证,例如发送auth或者authenticate等消息给第三方auth中心,并根据其返回的结果决定是否接受或者拒绝设备客户端的连接或者订阅。其中,auth是一个前后端分离的oauth2.0(open authorization,开放授权)授权中心与用户中心。从而提高设备身份验证的灵活性和便捷性,同时也可以支持多种验证方式和协议,适应不同场景和需求。
72.图3为本技术实施例提供的另一种车联网数据通信方法的流程图。如图3所示,步骤s230还进一步包括:
73.s310:获取每条mqtt消息的优先级和到达时间。
74.mqtt消息的优先级是指在发布/订阅模式下,服务器根据不同的消息重要性或紧急程度,对消息进行排序和分发的一种机制。不同的优先级可以影响消息的到达顺序和时效性。示例性地,mqtt协议支持三种qos级别,分别是qos 0、qos 1和qos 2,不同qos级别表
示了消息代理对消息的传输保证程度。其中,qos 0表示最多一次(at most once),消息代理只尝试一次发送消息,不进行确认或重传,可能会导致消息丢失或重复;qos 1表示至少一次(at least once),消息代理至少尝试一次发送消息,并等待接收方的确认,如果没有收到确认,会重传消息,可能会导致消息重复;qos 2表示只有一次(exactly once),消息代理通过四步握手的方式确保消息只被发送和接收一次,不会导致消息丢失或重复。
75.通常来说,qos 2的优先级最高,qos 0的优先级最低。但是,不同的qos级别也有不同的开销和延迟。qos 2需要更多的网络带宽和存储空间,以及更长的传输时间。因此,在确定mqtt消息的优先级即qos级别时,需要根据具体的业务场景和需求进行权衡。
76.示例性地,如果需要发送一些实时性较高、但不太重要的数据,比如温度传感器的读数,可以将mqtt消息的优先级设为qos 0,以减少网络开销和延迟;如果需要发送一些实时性较低、但比较重要的数据,比如设备控制命令或配置更新,可以将mqtt消息的优先级设为qos 1或qos 2,以确保数据的可靠传输。
77.s320:根据mqtt消息的优先级和到达时间对mqtt消息进行排序,以得到mqtt消息队列,mqtt消息队列用于缓存多个车辆发送的mqtt消息。
78.s330:根据服务器的负载情况,动态调整mqtt消息队列的长度和发送频率,以确保服务器不会过载或者闲置,mqtt消息队列的长度是指mqtt消息队列中缓存的mqtt消息数量。
79.本实施例中,可先根据mqtt消息的优先级和到达时间对mqtt消息进行排序,以得到mqtt消息队列,例如,可将优先级为qos 1或qos 2的mqtt消息优先存储,或者将到达时间最早的mqtt消息优先存储。
80.动态调整消息队列的长度和发送频率是指根据服务器的负载情况和网络状况,改变消息队列能够缓存的消息数量和发送给订阅者的消息速率的一种方法。这样可以避免服务器过载或闲置,提高消息传输的效率和可靠性。
81.示例性地,假设一个mqtt服务器(即消息代理)设有一个长度为1000的消息队列,也就是,该消息队列最多可存储1000条消息。该服务器每秒可以处理100条qos 1或qos 2的消息。若消息发送方(即发布者)每秒发送200条qos 1的消息给一个消息接收方(即订阅者),那么该服务器由于无法及时处理所有的消息会面临压力。
82.本步骤中,根据服务器的负载情况,动态调整mqtt消息队列的长度,可以包括:
83.s410:当mqtt消息队列的长度达到第一阈值时,发送pubrec消息至消息发送方,以使消息发送方暂停发送新的mqtt消息;
84.s420:当mqtt消息队列的长度下降到第二阈值时,发送pubrel消息至消息发送方,以允许消息发送方恢复发送新的mqtt消息,第一阈值大于所述第二阈值。
85.可以理解的是,第一阈值和第二阈值可以为人为预先设定的阈值,第一阈值可以为消息队列长度的0.8,第二阈值可以为消息队列长度的0.5,示例性地,若消息队列长度为1000,则第一阈值为800,第二阈值为500。
86.进一步地,当mqtt消息队列的长度达到第一阈值时,也即消息队列存储的消息数量达到80%的容量时(即800条),服务器向发布者发送pubrec消息,要求其暂停发送新的消息。
87.当mqtt消息队列的长度达到第二阈值时,也即消息队列存储的消息数量从80%下
降到50%的容量时(即500条),服务器向发布者发送pubrel消息,允许其恢复发送新的消息。
88.当订阅者接收到publish消息时,订阅者向服务器发送puback或pubcomp消息,确认已收到并处理了该条消息。服务器根据收到的puback或pubcomp消息,从消息队列中删除相应的已分发的消息,并更新队列长度。
89.在另外一种实施例中,也可动态调整mqtt消息队列的发送频率,例如将服务器每秒处理100条qos 1消息调整为每秒处理150条qos 1消息。
90.在另外一种实施例中,服务器可根据mqtt协议规范,使用pubrec、pubrel等消息与车辆进行流量控制,例如在服务器的负载情况到达预设阈值时,也即服务器负载较高时,发送pubrec消息给车辆,要求其暂停发送新的消息,直到收到pubrel消息为止。其中,预设阈值为人为预定的阈值。
91.在另外一种实施例中,服务器可根据车辆的行为,判断是否需要断开与车辆的连接,例如在消息发送方发送的mqtt消息的消息数量到达预设阈值且包含预设数量的无效或者恶意消息时,发送disconnect消息给消息发送方,并关闭消息发送方与服务器的连接。其中,预设阈值为人为预定的阈值。
92.示例性地,当前车辆已发送500条消息且该500条消息中有300条消息为无效或者恶意消息时,发送disconnect消息给车辆,并关闭车辆与服务器的连接。
93.图4为本技术实施例提供的一种车联网数据通信装置400的示意图。如图4所示,该装置400包括:
94.获取模块401,用于获取消息发送方发送的mqtt消息的消息数量和发送频率;
95.确认模块402,用于根据采集到的服务器的负载指标确认服务器的负载情况;
96.控制模块403,用于根据mqtt消息的消息数量、发送频率和/或服务器的负载情况,对mqtt消息的流量进行控制;
97.发送模块404,用于根据消息接收方订阅的主题和gos级别,将mqtt消息发送给对应的消息接收方并确认mqtt消息是否成功到达消息接收方。
98.在一些可实现方式中,该装置400还包括:
99.接收模块405,用于接收消息发送方基于mqtt协议发送的mqtt消息;
100.解析模块406,用于对接收到的mqtt消息进行解析,以得到消息类型;
101.调用模块407,用于根据消息类型,调用与消息类型对应的后端服务以执行与消息类型对应的业务流程。
102.在一些可实现方式中,该控制模块403还进一步用于:获取每条mqtt消息的优先级和到达时间;根据mqtt消息的优先级和到达时间对mqtt消息进行排序,以得到mqtt消息队列,mqtt消息队列用于缓存多个消息发送方发送的mqtt消息;根据服务器的负载情况,动态调整mqtt消息队列的长度和发送频率,以确保服务器不会过载或者闲置,mqtt消息队列的长度是指mqtt消息队列中缓存的mqtt消息的数量。
103.在一些可实现方式中,该装置400还包括:
104.验证模块408,用于利用第三方auth中心对消息接收方进行身份验证,以根据第三方auth中心返回的验证结果决定是否接受消息接收方的订阅。
105.应理解的是,装置实施例与车联网数据通信方法实施例可以相互对应,类似的描
述可以参照车联网数据通信方法实施例。为避免重复,此处不再赘述。具体地,图4所示的装置400可以执行上述车联网数据通信方法实施例,并且装置400中的各个模块的前述和其它操作和/或功能分别为了实现上述车联网数据通信方法中的相应流程,为了简洁,在此不再赘述。
106.上文中结合附图从功能模块的角度描述了本技术实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本技术实施例中的车云通信网关的调度方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本技术实施例公开的车联网数据通信方法方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述车联网数据通信方法实施例中的步骤。
107.图5是本技术实施例提供的电子设备500的示意性框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(i/o)接口504,以及通信组件505中的一者或多者。
108.其中,处理器501用于控制该电子设备500的整体操作,以完成上述的车联网数据通信方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505传输。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件505可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
109.在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列
(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的车联网数据通信方法。
110.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的车联网数据通信方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的车联网数据通信方法。
111.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的车联网数据通信方法的步骤。
112.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的车联网数据通信方法的代码部分。
113.在另一示例性实施例中,还提供一种计算机程序,计算机程序使得计算机执行如上述的车联网数据通信方法。
114.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
115.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
116.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
117.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以该权利要求的保护范围为准。
技术特征:
1.一种车联网数据通信方法,其特征在于,包括:获取消息发送方发送的mqtt消息的消息数量和发送频率;根据采集到的服务器的负载指标确认所述服务器的负载情况;根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制;根据消息接收方订阅的主题和qos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方。2.根据权利要求1所述的方法,其特征在于,所述获取消息发送方发送的mqtt消息的消息数量和发送频率之前,还包括:接收消息发送方基于mqtt协议发送的mqtt消息;对接收到的所述mqtt消息进行解析,以得到消息类型;根据所述消息类型,调用与所述消息类型对应的后端服务以执行与所述消息类型对应的业务流程。3.根据权利要求1所述的方法,其特征在于,所述根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制,包括:获取每条mqtt消息的优先级和到达时间;根据所述mqtt消息的优先级和到达时间对所述mqtt消息进行排序,以得到mqtt消息队列,所述mqtt消息队列用于缓存多个消息发送方发送的mqtt消息;根据所述服务器的负载情况,动态调整所述mqtt消息队列的长度和发送频率,以确保所述服务器不会过载或者闲置,所述mqtt消息队列的长度为所述mqtt消息队列中缓存的mqtt消息的数量。4.根据权利要求3所述的方法,其特征在于,所述根据所述服务器的负载情况,动态调整所述mqtt消息队列的长度,包括:当所述mqtt消息队列的长度达到第一阈值时,发送pubrec消息至所述消息发送方,以使所述消息发送方暂停发送新的mqtt消息;当所述mqtt消息队列的长度下降到第二阈值时,发送pubrel消息至所述消息发送方,以允许所述消息发送方恢复发送新的mqtt消息,所述第一阈值大于所述第二阈值。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述服务器的负载情况到达预设阈值时,发送pubrec消息至所述消息发送方,以使所述消息发送方暂停发送新的mqtt消息,直到收到pubrel消息为止。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述消息发送方发送的mqtt消息的消息数量到达预设阈值且包含预设数量的无效或者恶意消息时,发送disconnect消息至所述消息发送方,以使所述消息发送方关闭连接。7.根据权利要求1所述的方法,其特征在于,所述根据消息接收方订阅的主题和qos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方之前,还包括:利用第三方auth中心对所述消息接收方进行身份验证,以根据所述第三方auth中心返回的验证结果决定是否接受所述消息接收方的订阅。8.一种车联网数据通信装置,其特征在于,包括:
获取模块,用于获取消息发送方发送的mqtt消息的消息数量和发送频率;确认模块,用于根据采集到的服务器的负载指标确认所述服务器的负载情况;控制模块,用于根据所述mqtt消息的消息数量、发送频率和/或所述服务器的负载情况,对所述mqtt消息的流量进行控制;发送模块,用于根据消息接收方订阅的主题和gos级别,将所述mqtt消息发送给对应的消息接收方并确认所述mqtt消息是否成功到达所述消息接收方。9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1-7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-7中任一项所述的方法。
技术总结
本申请提供了一种车联网数据通信方法、装置、设备及介质,该方法包括:获取消息发送方发送的MQTT消息的消息数量和发送频率;根据采集到的服务器的负载指标确认服务器的负载情况;根据MQTT消息的消息数量、发送频率和/或服务器的负载情况,对MQTT消息的流量进行控制;根据消息接收方订阅的主题和QoS级别,将MQTT消息发送给对应的消息接收方并确认MQTT消息是否成功到达消息接收方。本申请可以防止消息堆积或丢失,保证消息传输的稳定性和可靠性,避免了资源浪费或拥塞。免了资源浪费或拥塞。免了资源浪费或拥塞。
技术研发人员:刘瑞强
受保护的技术使用者:东软睿驰汽车技术(大连)有限公司
技术研发日:2023.07.24
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/