CN116056052B - 消息处理方法、装置、电子设备和存储介质 - Google Patents

消息处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116056052B
CN116056052B CN202210987825.1A CN202210987825A CN116056052B CN 116056052 B CN116056052 B CN 116056052B CN 202210987825 A CN202210987825 A CN 202210987825A CN 116056052 B CN116056052 B CN 116056052B
Authority
CN
China
Prior art keywords
message
cache
earliest
sending
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210987825.1A
Other languages
English (en)
Other versions
CN116056052A (zh
Inventor
陆尚烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210987825.1A priority Critical patent/CN116056052B/zh
Publication of CN116056052A publication Critical patent/CN116056052A/zh
Application granted granted Critical
Publication of CN116056052B publication Critical patent/CN116056052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种消息处理方法、装置、电子设备和存储介质,涉及通信技术领域,提供了在上层业务应用与底层之间的基于消息缓存的消息处理机制,从而可以简化上层应用的开发者需要考虑的细节,从而提高上层应用开发者的开发效率。消息处理方法包括:响应于来自于业务应用的基于目标设备的消息发送请求,将消息添加至与目标设备对应的消息缓存;将消息缓存中最早的消息发送至目标设备;若消息发送成功,则将发送成功的消息移出消息缓存;若消息发送失败且发送失败的消息为第一类型消息,则重新执行将消息缓存中最早的消息发送至目标设备的过程;若消息发送失败且发送失败的消息为第二类型消息,则将消息缓存中最早的消息移出消息缓存。

Description

消息处理方法、装置、电子设备和存储介质
技术领域
本申请涉及通信技术领域,特别涉及一种消息处理方法、装置、电子设备和存储介质。
背景技术
随着通信技术的发展,越来越多的业务涉及设备间的交互,这些业务主要基于近场无线通信传输方式进行通信,例如Wi-Fi传输方式、蓝牙传输方式或近场通信(NearField Communication,NFC)传输方式等。现有的设备间交互消息的方式对于上层应用的开发者来说较为复杂,需要考虑消息传输过程中的细节,因此开发效率较低。
发明内容
一种消息处理方法、装置、电子设备和存储介质,提供了在上层业务应用与底层之间的基于消息缓存的消息处理机制,从而可以简化上层应用的开发者需要考虑的细节,从而提高上层应用开发者的开发效率。
第一方面,提供一种消息处理方法,包括:响应于来自于业务应用的基于目标设备的消息发送请求,将消息发送请求对应的消息添加至与目标设备对应的消息缓存;将消息缓存中最早的消息发送至目标设备;若消息发送成功,则将发送成功的消息移出消息缓存;若消息发送失败且发送失败的消息为第一类型消息,则重新执行将消息缓存中最早的消息发送至目标设备的过程;若消息发送失败且发送失败的消息为第二类型消息,则将消息缓存中最早的消息移出消息缓存。
其中,响应于来自于业务应用的基于目标设备的消息发送请求,将消息添加至所维护的与目标设备对应的消息缓存,基于缓存机制来实现消息发送,即提供了在上层业务应用与底层之间的基于消息缓存的消息处理机制,从而可以简化上层应用的开发者所需要考虑的细节,从而提高了上层应用开发者的开发效率;另外,针对发送失败的第一类型消息,重新进行发送,以提高对应的发送成功率,针对发送失败的第二类型消息,则将其移出消息缓存,以提高消息处理效率。
在一种可能的实施方式中,将消息发送请求对应的消息添加至与目标设备对应的消息缓存包括:确定目标设备对应的消息缓存是否已满;若消息缓存已满,且消息缓存中最早的消息是第一类型消息,则将消息缓存中最早的消息移出消息缓存并将对应的消息发送失败通知告知业务应用,以及将消息发送请求对应的消息添加至消息缓存;若消息缓存已满,且消息缓存中最早的消息是第二类型消息,则将消息缓存中最早的消息移出消息缓存以及将消息发送请求对应的消息添加至消息缓存;若消息缓存未满,则将消息发送请求对应的消息添加至消息缓存。提高第一类型消息的可靠性,同时提高第二类型消息的处理效率。
在一种可能的实施方式中,消息处理方法还包括:若获取到对端设备上线信息,则将对端设备上线信息告知业务应用;若获取到对端设备下线信息,则将对端设备下线信息告知业务应用。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备包括:若当前无对应目标设备的发送链路,且消息缓存中最早的消息具有第一优先级,则建立对应目标设备的发送链路并基于发送链路发送消息缓存中最早的消息;若当前无对应目标设备的发送链路,且消息缓存中最早的消息具有第二优先级,则放弃本次发送,第一优先级高于第二优先级。可以保证高优先级消息发送的可靠性,对于低优先级的消息,提高处理效率。
在一种可能的实施方式中,在将消息缓存中最早的消息发送至目标设备的过程中,在多个近场无线通信方式中首先选择Wi-Fi进行消息发送,多个近场无线通信方式包括Wi-Fi、蓝牙和近距离无线通信技术NFC。
在一种可能的实施方式中,消息处理方法还包括:若消息发送失败且发送失败的消息为第一类型消息,且发送失败的次数达到预设次数,则将发送失败的次数达到预设次数的消息移出消息缓存并将对应的消息发送失败通知告知业务应用。提高第一类型消息发送的可靠性,同时提高流程运行效率,防止消息积压。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备包括:若当前无对应目标设备的发送链路,则建立对应目标设备的发送链路并将消息缓存中最早的消息进行封装;若当前有对应目标设备的发送链路,则将消息缓存中最早的消息进行封装;基于发送链路发送封装后的消息。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备还包括:若当前有对应目标设备的发送链路,则基于发送链路发送消息缓存中最早的消息;发送消息缓存中最早的消息包括:将消息缓存中最早的消息进行封装;基于发送链路发送封装后的消息。
在一种可能的实施方式中,封装后的消息的消息格式包括:包头字段、对端插件名称字段和消息字段;包头字段包括:协议名称字段、协议版本字段、消息类型字段、加密标记字段、消息id字段和消息体尺寸字段;对端插件名称字段包括:插件名称尺寸字段和插件名称内容字段;消息字段包括:消息尺寸字段和消息内容字段。
在一种可能的实施方式中,消息处理方法还包括:每隔预设时长扫描一次消息缓存中的消息;将消息缓存中连续三次被扫描到的消息移出消息缓存,若被移出消息缓存的消息是第一类型消息,则将对应的消息发送失败通知告知业务应用。通过这样的消息老化机制,可以限制每条消息在缓存中的滞留时间,防止缓存中的消息积压,提高流程运行效率。
在一种可能的实施方式中,预设时长为30秒。
在一种可能的实施方式中,消息处理方法还包括:若建立对应目标设备的发送链路失败,则在预设间隔后重新建立发送链路,重新建立的次数小于或等于预设重试次数。
在一种可能的实施方式中,消息处理方法还包括:若消息缓存中的消息被移出,则确定消息缓存是否已被清空,若是,则关闭对应目标设备的发送链路。
第二方面,提供一种消息处理装置,包括:缓存模块,用于响应于来自于业务应用的基于目标设备的消息发送请求,将消息发送请求对应的消息添加至与目标设备对应的消息缓存;发送模块,用于将消息缓存中最早的消息发送至目标设备;若消息发送成功,则将发送成功的消息移出消息缓存;若消息发送失败且发送失败的消息为第一类型消息,则重新执行将消息缓存中最早的消息发送至目标设备的过程;若消息发送失败且发送失败的消息为第二类型消息,则将消息缓存中最早的消息移出消息缓存。
第三方面,提供一种电子设备,包括处理器,用于存储处理器可执行指令的存储器;处理器被配置为执行指令时,使得电子设备实现上述的方法
第四方面,提供一种计算机可读存储介质,计算机可读存储介质中存储了程序代码,程序代码被处理器执行时,实现上述的方法。
附图说明
图1为本申请实施例中一种电子设备的结构框图;
图2为本申请实施例中一种消息处理方法的流程示意图;
图3为本申请实施例中另一种消息处理方法的流程示意图;
图4为本申请实施例中另一种消息处理方法的流程示意图;
图5为本申请实施例中另一种消息处理方法的流程示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
首先对本申请实施例所涉及的电子设备进行说明,图1示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,天线2,无线通信模块160等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。在另外一些实施例中,天线可以和调谐开关结合使用。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
本申请实施例所涉及的应用场景可以为多个电子设备100之间的近场无线通信交互场景,多个电子设备100之间基于近场无线通信组网连接,并可以通过Wi-Fi、蓝牙或NFC等近场环境下的无线通信方式实现交互,其中部分电子设备100从组网连接中退出即为设备下线,新的电子设备100加入组网连接即为设备下线。
本申请实施例中,电子设备100可以通过一种向上对接上层业务应用、向下对接底层协议模块的中间层设备到设备(Device-to-Device,D2D)模块来负责上述近场无线通信场景下的信息处理,业务应用是指电子设备的软件架构中实现具体业务逻辑的模块或层级,底层协议模块是指电子设备的软件架构中实现不同通信协议的驱动层或者位于驱动层更上一层的协议层,位于驱动层更上一层的协议层可以进一步实现不同通信协议的驱动层的管理,以进一步屏蔽底层协议的差异。在多个电子设备的交互场景下,任意电子设备均可以作为发送消息的源设备,其他电子设备可以作为接收消息的目标设备。
如图2和图3所示,本申请实施例提供了一种消息处理方法,该消息处理方法的执行主体可以为上述的电子设备100,具体可以为基于近场无线通信组网连接的多个电子设备中的一者中的D2D模块,在该电子设备中的某上层业务应用需要发送消息至目标设备时,上层业务应用可以发送基于目标设备的消息发送请求至D2D模块,该消息处理方法包括:
步骤101、响应于来自于业务应用的基于目标设备的消息发送请求,将消息发送请求对应的消息添加至与目标设备对应的消息缓存;
其中,在电子设备中,D2D模块会为发现的每个设备维护一个对应的消息缓存,当上层业务需要发送消息到其他设备时,D2D模块会先把业务方的消息缓存起来,以便于后续基于缓存机制进行处理发送。
步骤102、将消息缓存中最早的消息发送至目标设备;
其中,消息缓存采用先进先出机制,当消息缓存中具有待发送的消息时,会首先发送最早的消息。
步骤103、确定消息是否发送成功,若是,即若该消息发送成功,则进入步骤104、将发送成功的消息移出消息缓存,若否,即若该消息发送失败,则进入步骤105;
步骤105、确定发送失败的消息是第一类型消息还是第二类型消息,若发送失败的消息是第一类型消息,即若消息发送失败且发送失败的消息为第一类型消息,则重新执行步骤102,即重新发送第一类型消息,若发送失败的消息是第二类型消息,即若消息发送失败且发送失败的消息为第二类型消息,则进入步骤106、将消息缓存中最早的消息移出消息缓存。其中,第一类型消息和第二类型消息是按照消息的重要程度划分的,第一类型消息可以称为可靠交付消息,第二类型消息可以称为非可靠交付消息,对于第一类型消息,需要尽量发送成功,所以在其发送失败时,重新进行发送,以提高其发送成功率,而对于第二类型消息,是可以发送失败的,所以在其发送失败时,可以直接将其移出消息缓存,以提高缓存中其他消息的处理效率。对于第一类型消息,D2D模块可以将其是否发送成功的结果告知上层业务。
本申请实施例的消息处理方法,响应于来自于业务应用的基于目标设备的消息发送请求,将消息添加至所维护的与目标设备对应的消息缓存,基于缓存机制来实现消息发送,即提供了在上层业务应用与底层之间的基于消息缓存的消息处理机制,从而可以简化上层应用的开发者所需要考虑的细节,从而提高了上层应用开发者的开发效率;另外,针对发送失败的第一类型消息,重新进行发送,以提高对应的发送成功率,针对发送失败的第二类型消息,则将其移出消息缓存,以提高消息处理效率。
在一种可能的实施方式中,如图2所示,消息处理方法还包括:若获取到对端设备上线信息,则将对端设备上线信息告知业务应用;若获取到对端设备下线信息,则将对端设备下线信息告知业务应用。对端设备上线信息和下线信息可以基于底层协议模块获取,当有新的电子设备加入无线组网时,即有对端设备上线,当有电子设备从无线组网中退出时,即有对端设备下线。D2D模块基于底层协议模块来实现无线组网中在线设备的状态管理,当设备状态变更时通知上层业务。
在一种可能的实施方式中,如图2和图4所示,上述将消息发送请求对应的消息添加至与目标设备对应的消息缓存的过程包括:
步骤1011、确定目标设备对应的消息缓存是否已满,若是,则进入步骤1012,若否,则进入步骤1013、将消息发送请求对应的消息添加至消息缓存;
步骤1012、确定消息缓存中最早的消息是第一类型消息还是第二类型消息,若消息缓存已满,且消息缓存中最早的消息是第一类型消息,则进入步骤1014,若消息缓存已满,且消息缓存中最早的消息是所述第二类型消息,则进入步骤1015;
步骤1014、将消息缓存中最早的消息移出消息缓存并将对应的消息发送失败通知告知业务应用,然后进入步骤1013、将消息发送请求对应的消息添加至消息缓存;
步骤1015、将消息缓存中最早的消息移出消息缓存以及进入步骤1013、将消息发送请求对应的消息添加至消息缓存。
具体地,为了消息处理的效率,消息缓存具有大小限制,例如消息缓存中最多只能缓存64条消息。消息缓存采用先进先出机制,当消息缓存已满而又有新的消息请求发送时,最早进入消息缓存的消息会被先清理出缓存并视为发送失败。其中,如果被清理出缓存的消息为第一类型消息,则需要将消息发送失败通知告知业务应用,如果被清理出缓存的消息为第二类型消息,则无需告知业务应用。即当可靠交付消息发送失败时,需要告知上层业务,以提高可靠性,当非可靠交付消息发送失败时,无需告知上层业务,以提高消息处理效率。
在一种可能的实施方式中,如图4所示,上述将消息缓存中最早的消息发送至目标设备包括:
步骤1021、确定当前是否有对应目标设备的发送链路,若是,即若当前有对应目标设备的发送链路,则进入步骤1022,若否,即若当前无对应目标设备的发送链路,则进入步骤1023;
步骤1023、建立对应目标设备的发送链路,然后进入步骤1022;
步骤1022、将消息缓存中最早的消息进行封装,然后进入步骤1024;
步骤1024、基于发送链路发送封装后的消息。
在一种可能的实施方式中,如图4所示,在步骤1024之后进入步骤103;
步骤103、确定消息是否发送成功,若是,即若该消息发送成功,则进入步骤104、将发送成功的消息移出消息缓存,若否,即若该消息发送失败,则进入步骤105;
步骤105、确定发送失败的消息是第一类型消息还是第二类型消息,若发送失败的消息是第一类型消息,则进入步骤1051、将发送失败的消息的发送失败次数加1,然后进入步骤1052;
步骤1052、确定发送失败的消息的发送失败次数是否达到3次,若是,则进入步骤1014,将该消息移出消息缓存并将消息发送失败通知告知业务应用,若否,则进入步骤1021,重新发送该消息。其中,发送失败次数达到3次则移除消息中的3次仅为举例,也可以设置其他的次数来作为移除消息的阈值,本申请实施例对此不做限定。也就是说,若消息发送失败且发送失败的消息为第一类型消息,且发送失败的次数达到预设次数,则将发送失败的次数达到预设次数的消息移出消息缓存并将对应的消息发送失败通知告知业务应用,以提高第一类型消息发送的可靠性,同时提高流程运行效率,防止消息积压。
若步骤105中确定发送失败的消息是第二类型消息,则进入步骤1022,将该消息移出消息缓存,以提高消息处理效率。
在一种可能的实施方式中,如图5所示,上述将消息缓存中最早的消息发送至目标设备包括:
步骤1021、确定当前是否有对应目标设备的发送链路,若是,即若当前有对应目标设备的发送链路,则进入步骤1022,若否,即若当前无对应目标设备的发送链路,则进入步骤1025;
步骤1025、确定消息缓存中最早的消息具有第一优先级还是第二优先级,若当前无对应目标设备的发送链路,且所述消息缓存中最早的消息具有第一优先级,则进入步骤1023,若当前无对应目标设备的发送链路,且消息缓存中最早的消息具有第二优先级,则进入步骤1026,第一优先级高于第二优先级;
步骤1026、放弃本次发送,即视为本次发送失败,然后可以进入步骤105,进一步确定发送失败的消息;
步骤1023、建立对应目标设备的发送链路,然后进入步骤1022;
步骤1022、将消息缓存中最早的消息进行封装,然后进入步骤1024;
步骤1024、基于发送链路发送封装后的消息。
具体地,图5所示的流程与图4所示的流程区别仅在于,在步骤1021和1023之间增加了步骤1025和1026,也就是说,在图5所示的流程中,对于待发送的消息,如果当前没有可用的发送链路,则可以对该消息的优先级进行判断,如果是高优先级的消息,则主动建立可用的发送链路来发送该消息,如果是低优先级的消息,则放弃本次发送,即视为发送失败,进一步可以在步骤105中确定的该消息的类型,如果属于第一类型消息,则重新发送,如果属于第二类型消息,则将该消息移出消息缓存即可。这样,可以保证高优先级消息发送的可靠性,对于低优先级的消息,提高处理效率。
除了增加步骤1025和1026之外,图5所示的流程其他部分均与图4所示的流程相同,例如,若在步骤1021中确定当前有对应目标设备的发送链路,或者,在步骤1023中已经建立了对应目标设备的发送链路,则进入步骤1022、将消息缓存中最早的消息进行封装,然后进入步骤1024、基于发送链路发送封装后的消息。其他的具体步骤均可以参照图4中所涉及的描述,在此不再赘述。
在一种可能的实施方式中,在上述将消息缓存中最早的消息发送至目标设备的过程中,在多个近场无线通信方式中首先选择Wi-Fi进行消息发送,多个近场无线通信方式包括Wi-Fi、蓝牙和近距离无线通信技术NFC。也就是说,在消息发送的过程中,由D2D模块来选择可靠链路有限进行通信,例如,在包括Wi-Fi、蓝牙和NFC多种传输链路的情况下,优先选择基于可靠的Wi-Fi链路进行消息发送,如果基于Wi-Fi链路的消息发送失败,可以根据指定选择例如蓝牙链路进行消息发送。
在一种可能的实施方式中,上述封装后的消息的消息格式包括:包头Header字段、对端插件名称TargetPluginName字段和消息Message字段。如下表1示意了消息格式的定义:
表1
包头字段包括:
协议名称字段,该字段也可以称为magic魔数,可以用于定义通信协议名称,例如为uint8_t类型,值为0xfe;
协议版本version字段,可以用于定义版本号,例如为uint8_t类型,值为1;
消息类型type字段,该字段为分布式消息类型DistributedMessageType字段,值可以为HANDSHAKE_REQUEST(握手请求)、HANDSHAKE_RESPONSE(握手响应)、EVENT_MESSAGE(时间消息)和FILE_MESSAGE(文件消息)中的一者;
加密标记flag字段,例如为uint8_t类型,值为1表示加密消息,值为0表示非加密消息;
消息id字段,发送消息时自动递增的标识,例如为uint16_t类型;
保留reserved字段,用于功能扩展,例如为uint16_t类型;
消息体尺寸datasize字段,用于表示包头字段、对端插件字段和消息字段的数据大小,例如为uint32_t类型;
对端插件名称字段仅在消息类型不为HANDSHAKE_REQUEST和HANDSHAKE_RESPONSE时有效,对端插件名称字段包括:
插件名称尺寸字段,表示插件名称内容字段的尺寸,例如为uint32_t类型;
插件名称内容字段,例如为string类型;
消息字段包括:
消息尺寸字段,表示消息内容字段的尺寸,例如为uint32_t类型;
消息内容字段,例如为string类型。
如下表2示意了握手请求消息格式的定义:
表2
其中,消息内容字段可以为以Json格式保存的键值对,其中hiviewuuid表示本节点的id,plugininfos表示本节点的插件能力。电子设备上线后可以通过软总线枚举在线节点,告知自己的插件能力,为了判断对方具备哪些能力,需要查询对方已经加载的插件,向这些节点发送握手请求,另对端节点进入握手状态。
如下表3示意了握手响应消息格式的定义:
表3
接收到握手消息后,如果对端节点是握手态,则进入上线态,并发送握手相应消息,发布本端已经加载的插件,如果对端节点是下线太,则令其进入握手态,并发送握手请求消息。
上述表2和表3并不表示上述步骤1022中消息的封装格式,因为上述步骤1022中进行封装的消息为业务消息,而表2和表3并非表示业务消息。下面的表4示意了以双端上报DualReporter消息为例的一种业务消息的格式定义:
表4
即在上述消息处理方法中,上层业务应用请求发送的消息为业务消息,对于该消息,会在上述步骤1022中将消息进行封装打包为固定格式,然后再发送至目标设备,目标设备的D2D模块接收到消息,按照格式解析后分发到对应的上层业务应用。
在一种可能的实施方式中,上述消息处理方法还包括:每隔预设时长扫描一次消息缓存中的消息;将消息缓存中连续三次被扫描到的消息移出消息缓存,并视为发送失败,若被移出消息缓存的消息是第一类型消息,则将对应的消息发送失败通知告知业务应用,若被移出消息缓存的消息是第二类型消息,可以无需告知业务应用。通过这样的消息老化机制,可以限制每条消息在缓存中的滞留时间,防止缓存中的消息积压,提高流程运行效率。
在一种可能的实施方式中,预设时长为30秒,即每隔30秒扫描一次消息缓存。
在一种可能的实施方式中,消息处理方法还包括:若建立对应目标设备的发送链路失败,则在预设间隔后重新建立发送链路,重新建立的次数小于或等于预设重试次数,预设间隔例如为5秒,重试次数例如为5次,即在建立发送链路失败时,会在5秒后重新尝试建立链路,最多重试5次。每当有消息要发送时,立即尝试建立发送链路并重置重试次数。
在一种可能的实施方式中,消息处理方法还包括:若消息缓存中的消息被移出,则确定消息缓存是否已被清空,若是,则关闭对应目标设备的发送链路。
本申请实施例还提供一种消息处理装置,包括:缓存模块,用于响应于来自于业务应用的基于目标设备的消息发送请求,将消息发送请求对应的消息添加至与目标设备对应的消息缓存;发送模块,用于将消息缓存中最早的消息发送至目标设备;若消息发送成功,则将发送成功的消息移出消息缓存;若消息发送失败且所述发送失败的消息为第一类型消息,则重新执行将消息缓存中最早的消息发送至目标设备的过程;若消息发送失败且发送失败的消息为第二类型消息,则将消息缓存中最早的消息移出消息缓存。
该消息处理装置可以应用上述任意实施例中的消息处理装置,具体过程和原理与上述实施例相同,在此不再赘述。
应理解以上消息处理装置的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,缓存模块和发送模块中的任意一者可以为单独设立的处理元件,也可以集成在消息处理装置中,例如集成在消息处理装置的某一个芯片中实现,此外,也可以以程序的形式存储于消息处理装置的存储器中,由消息处理装置的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,缓存模块和发送模块这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在一种可能的实施方式中,将消息发送请求对应的消息添加至与目标设备对应的消息缓存包括:确定目标设备对应的消息缓存是否已满;若消息缓存已满,且消息缓存中最早的消息是第一类型消息,则将消息缓存中最早的消息移出消息缓存并将对应的消息发送失败通知告知业务应用,以及将消息发送请求对应的消息添加至消息缓存;若消息缓存已满,且消息缓存中最早的消息是第二类型消息,则将消息缓存中最早的消息移出消息缓存以及将消息发送请求对应的消息添加至消息缓存;若消息缓存未满,则将消息发送请求对应的消息添加至消息缓存。
在一种可能的实施方式中,消息处理装置,还包括:上线模块,用于若获取到对端设备上线信息,则将对端设备上线信息告知业务应用;下线模块,用于若获取到对端设备下线信息,则将对端设备下线信息告知业务应用。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备包括:若当前无对应目标设备的发送链路,且消息缓存中最早的消息具有第一优先级,则建立对应目标设备的发送链路并基于发送链路发送消息缓存中最早的消息;若当前无对应目标设备的发送链路,且消息缓存中最早的消息具有第二优先级,则放弃本次发送,第一优先级高于第二优先级。
在一种可能的实施方式中,在将消息缓存中最早的消息发送至目标设备的过程中,在多个近场无线通信方式中首先选择Wi-Fi进行消息发送,多个近场无线通信方式包括Wi-Fi、蓝牙和近距离无线通信技术NFC。
在一种可能的实施方式中,发送模块还用于,若消息发送失败且发送失败的消息为第一类型消息,且发送失败的次数达到预设次数,则将发送失败的次数达到预设次数的消息移出消息缓存并将对应的消息发送失败通知告知业务应用。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备包括:若当前无对应目标设备的发送链路,则建立对应目标设备的发送链路并将消息缓存中最早的消息进行封装;若当前有对应目标设备的发送链路,则将消息缓存中最早的消息进行封装;基于发送链路发送封装后的消息。
在一种可能的实施方式中,将消息缓存中最早的消息发送至目标设备还包括:若当前有对应目标设备的发送链路,则基于发送链路发送消息缓存中最早的消息;发送消息缓存中最早的消息包括:将消息缓存中最早的消息进行封装;基于发送链路发送封装后的消息。
在一种可能的实施方式中,封装后的消息的消息格式包括:包头字段、对端插件名称字段和消息字段;包头字段包括:协议名称字段、协议版本字段、消息类型字段、加密标记字段、消息id字段和消息体尺寸字段;对端插件名称字段包括:插件名称尺寸字段和插件名称内容字段;消息字段包括:消息尺寸字段和消息内容字段。
在一种可能的实施方式中,发送模块还用于,每隔预设时长扫描一次消息缓存中的消息;将消息缓存中连续三次被扫描到的消息移出消息缓存,若被移出消息缓存的消息是第一类型消息,则将对应的消息发送失败通知告知业务应用。
在一种可能的实施方式中,预设时长为30秒。
在一种可能的实施方式中,发送模块还用于,若建立对应目标设备的发送链路失败,则在预设间隔后重新建立发送链路,重新建立的次数小于或等于预设重试次数。
在一种可能的实施方式中,发送模块还用于,若消息缓存中的消息被移出,则确定消息缓存是否已被清空,若是,则关闭对应目标设备的发送链路。
本申请所涉及的电子设备可能为手机、平板电脑、个人计算机(personalcomputer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、无人机设备、智能汽车、智能音响、机器人、智能眼镜等等任意产品。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任意实施例中的消息处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种消息处理方法,其特征在于,包括:
响应于来自于业务应用的基于目标设备的消息发送请求,将所述消息发送请求对应的消息添加至与所述目标设备对应的消息缓存;
基于近场无线通信方式将所述消息缓存中最早的消息发送至所述目标设备;
若所述消息发送成功,则将发送成功的所述消息移出所述消息缓存;
若所述消息发送失败且所述发送失败的消息为第一类型消息,则重新执行将所述消息缓存中最早的消息发送至所述目标设备的过程;
若所述消息发送失败且所述发送失败的消息为第二类型消息,则将所述消息缓存中最早的消息移出所述消息缓存;
所述将所述消息发送请求对应的消息添加至与所述目标设备对应的消息缓存包括:
确定所述目标设备对应的消息缓存是否已满;
若所述消息缓存已满,且所述消息缓存中最早的消息是所述第一类型消息,则将所述消息缓存中最早的消息移出所述消息缓存并将对应的消息发送失败通知告知所述业务应用,以及将所述消息发送请求对应的消息添加至所述消息缓存;
若所述消息缓存已满,且所述消息缓存中最早的消息是所述第二类型消息,则将所述消息缓存中最早的消息移出所述消息缓存以及将所述消息发送请求对应的消息添加至所述消息缓存;
若所述消息缓存未满,则将所述消息发送请求对应的消息添加至所述消息缓存。
2.根据权利要求1所述的消息处理方法,其特征在于,还包括:
若获取到对端设备上线信息,则将所述对端设备上线信息告知所述业务应用;
若获取到对端设备下线信息,则将所述对端设备下线信息告知所述业务应用。
3.根据权利要求1所述的消息处理方法,其特征在于,
所述将所述消息缓存中最早的消息发送至所述目标设备包括:
若当前无对应所述目标设备的发送链路,且所述消息缓存中最早的消息具有第一优先级,则建立对应所述目标设备的发送链路并基于所述发送链路发送所述消息缓存中最早的消息;
若当前无对应所述目标设备的发送链路,且所述消息缓存中最早的消息具有第二优先级,则放弃本次发送,所述第一优先级高于所述第二优先级。
4.根据权利要求1所述的消息处理方法,其特征在于,
在所述将所述消息缓存中最早的消息发送至所述目标设备的过程中,在多个近场无线通信方式中首先选择Wi-Fi进行消息发送,所述多个近场无线通信方式包括Wi-Fi、蓝牙和近距离无线通信技术NFC。
5.根据权利要求1所述的消息处理方法,其特征在于,还包括:
若所述消息发送失败且所述发送失败的消息为所述第一类型消息,且发送失败的次数达到预设次数,则将发送失败的次数达到预设次数的消息移出所述消息缓存并将对应的消息发送失败通知告知所述业务应用。
6.根据权利要求1所述的消息处理方法,其特征在于,
所述将所述消息缓存中最早的消息发送至所述目标设备包括:
若当前无对应所述目标设备的发送链路,则建立对应所述目标设备的发送链路并将所述消息缓存中最早的消息进行封装;
若当前有对应所述目标设备的发送链路,则将所述消息缓存中最早的消息进行封装;
基于所述发送链路发送封装后的所述消息。
7.根据权利要求3所述的消息处理方法,其特征在于,
所述将所述消息缓存中最早的消息发送至所述目标设备还包括:
若当前有对应所述目标设备的发送链路,则基于所述发送链路发送所述消息缓存中最早的消息;
所述发送所述消息缓存中最早的消息包括:
将所述消息缓存中最早的消息进行封装;
基于所述发送链路发送封装后的所述消息。
8.根据权利要求6或7所述的消息处理方法,其特征在于,
所述封装后的所述消息的消息格式包括:包头字段、对端插件名称字段和消息字段;
所述包头字段包括:协议名称字段、协议版本字段、消息类型字段、加密标记字段、消息id字段和消息体尺寸字段;
所述对端插件名称字段包括:插件名称尺寸字段和插件名称内容字段;
所述消息字段包括:消息尺寸字段和消息内容字段。
9.根据权利要求1至7中任意一项所述的消息处理方法,其特征在于,还包括:
每隔预设时长扫描一次所述消息缓存中的消息;
将所述消息缓存中连续三次被扫描到的消息移出所述消息缓存,若被移出所述消息缓存的消息是第一类型消息,则将对应的消息发送失败通知告知所述业务应用。
10.根据权利要求9所述的消息处理方法,其特征在于,
所述预设时长为30秒。
11.根据权利要求3所述的消息处理方法,其特征在于,还包括:
若建立对应所述目标设备的发送链路失败,则在预设间隔后重新建立所述发送链路,所述重新建立的次数小于或等于预设重试次数。
12.根据权利要求1至11中任意一项所述的消息处理方法,其特征在于,还包括:
若所述消息缓存中的消息被移出,则确定所述消息缓存是否已被清空,若是,则关闭对应所述目标设备的发送链路。
13.一种消息处理装置,其特征在于,包括:
缓存模块,用于响应于来自于业务应用的基于目标设备的消息发送请求,将所述消息发送请求对应的消息添加至与所述目标设备对应的消息缓存;
发送模块,用于基于近场无线通信方式将所述消息缓存中最早的消息发送至所述目标设备;若所述消息发送成功,则将发送成功的所述消息移出所述消息缓存;若所述消息发送失败且所述发送失败的消息为第一类型消息,则重新执行将所述消息缓存中最早的消息发送至所述目标设备的过程;若所述消息发送失败且所述发送失败的消息为第二类型消息,则将所述消息缓存中最早的消息移出所述消息缓存;
所述将所述消息发送请求对应的消息添加至与所述目标设备对应的消息缓存包括:
确定所述目标设备对应的消息缓存是否已满;
若所述消息缓存已满,且所述消息缓存中最早的消息是所述第一类型消息,则将所述消息缓存中最早的消息移出所述消息缓存并将对应的消息发送失败通知告知所述业务应用,以及将所述消息发送请求对应的消息添加至所述消息缓存;
若所述消息缓存已满,且所述消息缓存中最早的消息是所述第二类型消息,则将所述消息缓存中最早的消息移出所述消息缓存以及将所述消息发送请求对应的消息添加至所述消息缓存;
若所述消息缓存未满,则将所述消息发送请求对应的消息添加至所述消息缓存。
14.一种电子设备,其特征在于,包括处理器,用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于:
所述计算机可读存储介质中存储了程序代码,所述程序代码被处理器执行时,实现权利要求1至12中任一项所述的方法。
CN202210987825.1A 2022-08-17 2022-08-17 消息处理方法、装置、电子设备和存储介质 Active CN116056052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210987825.1A CN116056052B (zh) 2022-08-17 2022-08-17 消息处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210987825.1A CN116056052B (zh) 2022-08-17 2022-08-17 消息处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116056052A CN116056052A (zh) 2023-05-02
CN116056052B true CN116056052B (zh) 2023-10-31

Family

ID=86127881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210987825.1A Active CN116056052B (zh) 2022-08-17 2022-08-17 消息处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116056052B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687167A (en) * 1994-11-24 1997-11-11 International Business Machines Corporation Method for preempting connections in high speed packet switching networks
WO1999013667A1 (de) * 1997-09-11 1999-03-18 Siemens Aktiengesellschaft Verfahren und anordnung zum verwalten von empfangenen kurznachrichten auf einem mobilen telekommunikationsendgerät
CN101222436A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 一种分级发送数据的方法
CN102014066A (zh) * 2010-12-13 2011-04-13 武汉大学 一种覆盖网络中的数据缓存管理方法
CN104427551A (zh) * 2013-08-22 2015-03-18 中兴通讯股份有限公司 一种业务消息发送方法及装置
CN105871959A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 一种消息传递的方法、系统和装置
CN112565418A (zh) * 2020-12-04 2021-03-26 平安科技(深圳)有限公司 服务集群的消息重发方法、装置、计算机设备及存储介质
WO2021062660A1 (zh) * 2019-09-30 2021-04-08 Oppo广东移动通信有限公司 数据传输方法、装置、用户设备及存储介质
WO2022063109A1 (zh) * 2020-09-28 2022-03-31 华为技术有限公司 一种Wi-Fi P2P连接方法、电子设备及计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687167A (en) * 1994-11-24 1997-11-11 International Business Machines Corporation Method for preempting connections in high speed packet switching networks
WO1999013667A1 (de) * 1997-09-11 1999-03-18 Siemens Aktiengesellschaft Verfahren und anordnung zum verwalten von empfangenen kurznachrichten auf einem mobilen telekommunikationsendgerät
CN101222436A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 一种分级发送数据的方法
CN102014066A (zh) * 2010-12-13 2011-04-13 武汉大学 一种覆盖网络中的数据缓存管理方法
CN104427551A (zh) * 2013-08-22 2015-03-18 中兴通讯股份有限公司 一种业务消息发送方法及装置
CN105871959A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 一种消息传递的方法、系统和装置
WO2021062660A1 (zh) * 2019-09-30 2021-04-08 Oppo广东移动通信有限公司 数据传输方法、装置、用户设备及存储介质
WO2022063109A1 (zh) * 2020-09-28 2022-03-31 华为技术有限公司 一种Wi-Fi P2P连接方法、电子设备及计算机可读存储介质
CN112565418A (zh) * 2020-12-04 2021-03-26 平安科技(深圳)有限公司 服务集群的消息重发方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN116056052A (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN111586807B (zh) 一种网络接入方法及通信装置
WO2021098533A1 (zh) 一种连接建立方法及终端设备
WO2019000866A1 (zh) 一种数据处理方法及物联网网关
WO2021017903A1 (zh) 语音呼叫方法、装置及系统
JP2023516542A (ja) 路側ユニットメッセージスケジューリングおよび輻輳制御
US20220304093A1 (en) Method and apparatus for handling security information between a wireless device and a network for a fast rrc release procedure in a wireless communication system
CN113141674A (zh) 多链路系统中链路配置方法、设备、系统及存储介质
CN111953714B (zh) 文件共享方法、通信装置及存储介质
CN113556340B (zh) 一种便携式vpn终端、数据处理方法及存储介质
CN116056052B (zh) 消息处理方法、装置、电子设备和存储介质
WO2021057503A1 (zh) 一种下载数据包的方法及装置
CN112866133B (zh) 用于获取共用最大分段大小mss的方法及装置
JP6141564B1 (ja) 路側通信装置および車載通信装置
CN113163443A (zh) 核心网数据传输方法及系统
WO2024037254A1 (zh) 一种通信方法及装置
CN114710755B (zh) 一种消息处理方法、车载通讯装置、电子设备及存储介质
CN113645646B (zh) 低功耗设备的通信优化方法、装置、设备、服务器及通信系统
CN113301542B (zh) 配对连接方法、装置、存储介质及电子设备
WO2024088140A1 (zh) 一种数据传输方法及装置
WO2024087064A1 (zh) 通信方法、电子设备及存储介质
WO2024104016A1 (zh) 一种数据传输的方法、装置、电子设备及存储介质
CN114500511B (zh) 一种数据传输方法、装置及电子设备
CN113535428B (zh) 请求消息和响应消息的处理方法、装置、设备和介质
US20240106764A1 (en) Computing power resource scheduling method and related apparatus
WO2024060302A1 (en) Technologies for congestion signaling in wireless networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant