一种消息处理方法、装置、设备及计算机可读存储介质与流程

文档序号:21980295发布日期:2020-08-25 19:15阅读:108来源:国知局
一种消息处理方法、装置、设备及计算机可读存储介质与流程
本申请涉及计算机网络通信领域,尤其涉及一种消息处理方法、装置、设备及计算机可读存储介质。
背景技术
:随着计算机行业的不断发展,各式各样的设备提供了花样繁多的功能。众多设备之间交互通信,使得众多设备构成通信系统。但因为设备所处的网络有可能不同,使用的通信协议也可能不同,所以,多种设备构成的通信系统的通信的难度和复杂度较高。因此,如果目标设备分布于多地处于多个网络下,只针对一个网络环境设计的技术可能导致寻址效率降低和网络传输速度降低。因此,在多个网络内均可访问,不需要多重的链路传递即可与各个设备互通消息的技术,例如基于b/s架构的消息传输技术,能够保证寻址效率和网络传输数据速度。而目前的这类技术,各设备和程序需要不断向服务器发送同步请求以保证消息的时效性,频繁的请求导致使用时设备和服务器的资源占用均变高。技术实现要素:有鉴于此,本申请提供了一种消息处理方法、装置、设备及计算机可读存储介质,如下:一种消息处理方法,应用于消息服务器,所述消息服务器连接多个发送端和多个接收端,所述方法包括:所述消息服务器接收并存储所述发送端发送的消息,其中所述发送端和多个接收端的网络协议被预先配置在所述消息服务器中;所述消息服务器在获取所述接收端发送的消息请求后,如果不存在所述接收端的待接收消息,则阻塞所述消息请求,并在接收到所述接收端的待接收消息后,将所述待接收消息发送至所述接收端。可选地,本方法还包括:所述消息服务器获取配置文件,所述配置文件中包括所述接收端和所述发送端的标识和所述消息的解析方式;所述消息服务器依据所述配置文件注册所述接收端和所述发送端,并为注册的所述接收端和所述发送端创建存储空间;所述消息服务器在新增终端的情况下,注册新增的终端并为所述新增的终端创建存储空间,在删减终端的情况下,注销删减的终端并释放所述删减的终端的存储空间,所述终端包括所述接收端和/或所述发送端。可选地,接收端和所述发送端存在于多种类型的网络环境,和/或,所述接收端和所述发送端使用不同类型的多种网络协议。可选地,接收并存储所述发送端发送的消息,包括:接收所述发送端发送的消息,并如果所述发送端已注册,则将所述消息按照发送时间的先后顺序,存储至所述消息的发送端在所述存储空间中的链表内;如果所述发送端未注册,则注册所述发送端,并将所述消息按照发送时间的先后顺序,存储至所述消息的发送端在所述存储空间中的链表内。可选地,在所述将所述消息按照发送时间的先后顺序,存储至所述消息的发送端在所述存储空间中的链表内之后,还包括:将所述链表内的消息按照接收端分组;如果所述链表内的消息的存在目标接收端,则向所述目标接收端发送所述目标接收端的分组内的消息,所述目标接收端为存在被阻塞的所述消息请求的所述接收端。可选地,在接收到所述接收端的待接收消息后,将所述待接收消息发送至所述接收端,包括:将所述链表内的消息按照接收端分组;如果所述链表内的消息的接收端为被阻塞的接收端,则向所述被阻塞的接收端发送所述的消息。可选地,本方法还包括:如果在预设时间周期内均不存在所述被阻塞的接收端的待接收消息,则向所述被阻塞的接收端发送无消息反馈。一种消息处理服务器,所述消息服务器连接多个发送端和多个接收端,所述发送端和多个接收端的网络协议被预先配置在所述消息服务器中;所述装置包括:消息模块和缓存模块;所述消息模块用于接收所述发送端发送的消息;所述缓存模块用于存储所述发送端发送的消息;所述消息模块还用于,在获取所述接收端发送的消息请求后,如果不存在所述接收端的待接收消息,则阻塞所述消息请求,并在接收到所述接收端的待接收消息后,将所述待接收消息发送至所述接收端。一种消息处理设备,连接多个发送端和多个接收端,所述发送端和多个接收端的网络协议被预先配置在所述消息处理设备中;所述消息处理设备包括存储器和处理器,所述存储器用于存储程序,所述处理器用于运行所述程序,以实现如上所述的消息处理方法的各个步骤。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,在所述计算机程序在计算机设备上运行时,实现如上所述的消息处理方法的各个步骤。本申请所述的技术方案,连接多个发送端和多个接收端的消息服务器,接收并存储发送端发送的消息,在获取接收端发送的消息请求后,如果不存在接收端的待接收消息,则阻塞消息请求,并在接收到接收端的待接收消息后,将待接收消息发送至接收端,因为消息阻塞消息请求后,接收端会等待消息请求的反馈,因此,极大降低了请求频率,能够减少消息同步对于资源的占用。又因为发送端和多个接收端的网络协议被预先配置在消息服务器中,所以可以通过配置项支持多网络环境下的设备,可以保证低寻址成本和最高的传输速度。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a为本申请实施例公开的一种消息服务器的结构示意图;图1b示例了一种基于b/s架构的阻塞型消息处理方法实例示意图;图2为本申请实施例公开的一种消息处理方法的流程示意图;图3为本申请实施例公开的创建存储空间的流程示意图;图4为本申请实施例公开的存储发送端发送的消息的流程示意图;图5为本申请实施例公开的查询待发送的消息的流程示意图;图6为本申请实施例公开的发送查询到待发送的消息的流程示意图;图7为本申请实施例公开的一种消息处理设备的结构示意图。具体实施方式图1a~图1b为本申请实施例公开的消息处理方法的应用场景示例,该场景中包括多个接收端和多个发送端。所有终端(包括接收端和发送端)可能处于不同类型的网络,也可能使用不同类型的协议进行通信。本申请公开的消息处理方法,由图1a中所示的消息服务器执行。其中,消息服务器分别与发送端以及接收端相连,进一步的,可以通过网络层分别与发送端以及接收端相连,网络层可以包括http层、https层、tcp层和udp层。具体的,如图1a所示,消息服务器可以包括缓存模块、消息模块和注册管理模块。本申请的实施例中,从硬件角度,以终端为平板、服务器和电脑为例进行说明,但并不限定于上述举例。从软件角度,如图1b所示,发送端可以包括浏览器a、udp控制器和tcp控制器,接收端可以包括浏览器b、udp控制器和tcp控制器。从图1b可以看出,发送端和接收端均在消息服务器注册,并由消息服务器实现消息通信。具体的,浏览器a,b为http/https接收端和发送端,并且是在消息服务器启动后动态注册入消息服务器。udp控制器可以运行在平板电脑上,使用udp/ip协议。tcp控制器可以运行在服务器上,使用tcp/ip协议。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行进一步地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图2为本申请实施例公开的一种消息处理方法,包括以下步骤:s201:消息服务器获取配置文件。具体的,配置文件可以由技术人员,预先按照终端使用的协议和所处的网络进行设置,并发送至消息服务器。也可以预先将配置文件保存在消息服务器内。消息服务运行时将配置文件解析后存储至内存中。表1示例了配置文件中可以包括的配置项(其中后缀*为动态注册和消息收发所需项,^为本次实例特定项,其余则是预配置项,无法动态修改):表1可以理解的是,配置项的各个配置值,可由技术人员依据接收端和发送端、以及网络协议进行配置,并且,在接收端和发送端、以及网络协议更改的情况下,技术人员可以多配置项的配置值进行修改。具体配置方式可以参见现有技术,这里不再赘述。因为配置项中包括接收端和发送端的标识,所以,通过配置信息可以实现发送端和/或接收端的删减或新增。s202:消息服务器依据配置文件,进行初始化配置。具体的,初始化配置的步骤包括以下:1、按照配置项中的configjson的位置将消息配置文件放入。消息配置文件的具体内容为设置的指令和对应的设备命令,例如表2:表2whilescreen切换全屏的指令abscreen切换ab屏的指令可以理解的是,消息配置文件也可以由技术人员预先设置。2、开启承载消息服务的消息服务器的软硬件,初始化注册信息管理模块。3、注册信息管理模块按照配置项的配置值,注册发送端和接收端,记录全局编码格式和其他配置。可以理解的是,消息服务器可以依据新增或删减终端后新获取的配置文件,在新增终端的情况下,注册新增的终端并为新增的终端创建存储空间,在删减终端的情况下,注销删减的终端并释放所述删减的终端的存储空间,其中,终端包括接收端和/或发送端。4、按照配置项的配置值,消息服务器开始尝试占用udp监听端口和tcp端口,如果失败则udp和tcp消息接收和发送功能启动失败。5、注册信息管理模块通知初始化完毕,消息服务器创建缓存模块的进程。6、缓存模块创建发送端对应的存储空间。具体流程如图3所示。7、注册信息管理模块接口开放,等待接收动态注册。8、缓存模块休眠,消息模块等待请求。可以理解的是,s201和s202为预先配置的过程,在终端和网络没有更改的情况下,可以仅配置一次,而无需重复执行。并且,s201~s202仅为可选的一种预先配置的具体实现方式,需要说明的是,预先配置的具体实现方式包括多种,本实施例对此不做赘述。基于以上配置,消息服务器实现发送端和接收端中间的消息通信流程,具体的,可以分为发送端发送消息的场景和接收端发送消息请求的场景,详见以下步骤:发送端发送消息的场景:s203:发送端发送消息。s204:消息服务器通过网络层,接收到消息,并按照配置文件配置的全局编码格式,解析消息,得到消息的发送端标识。s205:注册信息管理模块判断发送端标识是否存在于注册信息中,如果是,执行s206-s208,如果否,执行s209-s210。s206:消息服务器存储发送端发送的消息,具体流程可参见图4所示。s207:消息服务器查询待发送的消息,具体流程可参见图5所示。s208:消息服务器发送查询到的待发送的消息,具体流程可参见图6所示。s209:注册信息管理模块注册发送端。s210:消息服务器为新注册的发送端创建存储空间,具体可以参见图3所示。s210后,执行s206-s208。上述s202~s210为本申请实施例提供的接收并存储发送端发送的消息的一种可选的实现方式,可以将s202~s210概括为,接收发送端发送的消息,并如果发送端已注册,则存储消息。如果发送端未注册,则注册发送端后存储消息。需要说明的是,本申请实施例中的接收并存储发送端发送的消息还可以包括其他的实现方式,本申请对此不做限定。接收端发送消息请求的场景:s211:接收端发送消息请求。s212:消息服务器通过网络层,接收到消息请求,并按照配置文件配置的全局编码格式,解析消息请求,得到发送消息请求的接收端的标识(简称接收到标识)。s213:注册信息管理模块判断接收端标识是否存在于注册信息中,如果是,执行s214-s218,如果否,执行s219-s220。s214:消息服务器查询待发送的消息,具体流程可参见图5所示。s215:消息服务器发送查询到待发送的消息,具体流程可参见图6所示。s216:消息服务器如果没有查询到消息,则阻塞消息请求。阻塞是软件工程领域的一种常用技术手段,这里是指把消息请求挂起,不让其完成。在消息请求被阻塞的情况下,接收端不会收到消息请求的反馈,因此,不会再次发送消息请求,而是等到反馈。s217:消息服务器判断阻塞时长是否大于预设的时长阈值,如果是,执行s218,如果否,执行s217。s218:取消阻塞,并向发送端回复无消息。s219:注册信息管理模块注册接收端。s220:消息服务器为新注册的接收端创建存储空间,具体可以参见图3所示。s220后,执行s214-s218。需要说明的是,接收端在接收到消息后,可以解析消息并根据消息来源和内容执行相应处理。可以将上述s212~s216概括为:消息服务器在获取接收端发送的消息请求后,如果不存在接收端的待接收消息,则阻塞消息请求,并在接收到接收端的待接收消息后,将待接收消息发送至接收端。需要说明的是,s212~s216仅为可选的一种实施方式,本实施例还可以包括其他的具体实现方式,对此本实施例不做赘述。可以将上述s217~s220概括为:如果在预设时间周期内均不存在被阻塞的接收端的待接收消息,则向被阻塞的接收端发送无消息反馈。需要说明的是,本实施例中的s217~s220仅为可选步骤,用于及时向接收端反馈无消息。图2所示的流程具有以下有益效果:1、消息服务器接收并存储发送端发送的消息,并在接收端请求消息时,如果没有接收端的消息,则阻塞消息请求,因为阻塞消息请求后,接收端会等待消息请求的反馈,所以,不会再次发送消息请求,因此,极大降低了请求频率,能够减少消息同步对于资源的占用。2、发送端和多个接收端的网络协议被预先配置在消息服务器中,所以可以通过配置项支持多网络环境下的设备,所以可以保证低寻址成本和最高的传输速度。3、由于可以动态注册发送端和接收端、定制消息的解析行为,提高了服务的灵活性。下面将从消息服务器中各个模块的角度,对存储空间分配流程、消息存储流程、待发送消息查询流程、以及待发送消息发送流程进行进一步说明。图3为创建存储空间的流程,包括以下步骤:s301:缓存模块被唤醒。s302:缓存模块接到创建空间指令。可以理解的是,消息模块按需向缓存模块发送创建空间指令,即在需要为发送端创建存储空间的情况下,例如s210,发送包括发送端标识的创建空间指令,而在需要为接收端创建存储空间的情况下,例如s219,发送包括接收端标识的创建空间指令。s303:缓存模块依据创建空间指令创建终端的存储空间。具体的,将创建空间指令中的发送端标识或接收到标识放入映射,并创建映射与链表之间的对应关系。可选的,为了节省资源,缓存模块在完成存储空间的创建后,可以进入休眠状态。图4为存储发送端发送的消息的流程,包括以下步骤:s401:缓存模块被唤醒。s402:缓存模块接收到消息存储指令。具体的,消息存储指令可由消息模块在接收到发送端发送的消息后发出。s403:缓存模块将消息按照发送时间排序存储至发送端对应的链表内。可选的,为了节省资源,缓存模块在完成消息存储后,可以进入休眠状态。图5为查询待发送的消息的流程,包括以下步骤:s501:缓存模块被唤醒。s502:缓存模块接到消息查询指令。具体的,消息查询指令可以由消息模块在s207或者s214发送。s503:缓存模块遍历现有发送端的存储空间,找出待发送消息。s504:将待发送消息发送至消息模块。可选的,为了节省资源,缓存模块在完成消息查询后,可以进入休眠状态。图6为发送查询到待发送的消息的流程,包括以下步骤:s601:消息模块收到待发送的消息。s602:消息模块解析待发送的消息,并将待发送的消息按照接收端分组。s603:消息模块从注册信息管理模块尝试查找被阻塞的接收端,如果找到,执行s604,如果没有找到,执行s605。s604:唤醒接收端,并将接收方为被阻塞的接收端的待发送的消息,按照时间顺序,发送至对应的接收端。s605:将待发送的消息存储至缓存模块。具体的存储流程如前所述。本身器实施例公开了一种消息处理设备,消息处理设备连接多个发送端和多个接收端,其中,多个发送端和多个接收端的网络协议被预先配置在消息处理设备中;消息处理设备包括存储器和处理器。其中,存储器用于存储程序,处理器用于运行程序,以实现消息处理方法的各个步骤。图7为本申请实施例公开的一种消息处理设备的结构示意图,该设备可以包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704;在本申请实施例中,处理器701、通信接口702、存储器703、通信总线704的数量为至少一个,且处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信;处理器701可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;存储器703可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;其中,存储器存储有程序,处理器可执行存储器存储的程序,实现如上项所述的消息处理方法。本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质可存储有适于处理器执行的计算机程序,计算机程序被处理器执行时,实现如上所述的消息处理方法。本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1