请求消息处理方法、装置及系统、终端和存储介质与流程

文档序号:16149952发布日期:2018-12-05 17:22阅读:193来源:国知局
本发明涉及互联网领域,特别涉及一种请求消息处理方法、装置及系统、终端和存储介质。
背景技术
随着互联网技术的不断发展,直播类应用越来越多,在直播过程中,用户可以在客户端上发送请求消息和查看其他用户发送的请求消息以实现直播过程中的互动。相关技术中,当用户在客户端中查看请求消息时,客户端根据请求消息到达服务器的时间的先后顺序对相应的请求消息进行显示。但是,多个用户发送的多条请求消息到达服务器的时间可能相同,因此,客户端根据该时间的先后顺序对请求消息进行显示时,显示的多条请求消息可能会出现乱序的情况。技术实现要素:为了解决相关技术中客户端根据请求消息到达服务器的时间的先后顺序对相应的请求消息进行显示时,显示的多条请求消息可能会出现乱序的问题,本发明实施例提供了一种请求消息处理方法、装置及系统、终端和存储介质。所述技术方案如下:第一方面,提供了一种请求消息处理方法,应用于客户端,所述方法包括:所述客户端在从所述聊天室消息服务器拉取n个请求消息后,检测所述n个请求消息中是否包括时间戳相同的请求消息,所述时间戳为所述聊天室消息服务器确定的时间戳;当所述n个请求消息中包括时间戳相同的请求消息时,所述客户端筛选所述n个请求消息中时间戳相同的m个待处理消息,所述m小于或等于n;所述客户端根据所述m个待处理消息中携带的用户身份标识id对所述m个待处理消息进行排序得到第一消息序列;所述客户端按照请求消息的时间戳对除所述m个待处理消息外的n-m个请求消息进行排序得到第二消息序列;所述客户端根据所述m个待处理消息的时间戳在所述n个请求消息的时间戳中的顺序,在所述第二消息序列中插入所述第一消息序列,以得到待显示的目标消息序列。可选地,所述用户id由预设字符组成,所述预设字符包括:数字和/或字母组成,所述根据所述m个待处理消息中携带的用户身份标识id对所述m个待处理消息进行排序得到第一消息序列,包括:所述客户端按照用户id中的预设字符的先后顺序,对所述m个待处理消息进行排序得到第一消息序列。第二方面,提供了一种请求消息处理装置,所述装置包括:检测模块,用于在从所述聊天室消息服务器拉取n个请求消息后,检测所述n个请求消息中是否包括时间戳相同的请求消息,所述时间戳为所述聊天室消息服务器确定的时间戳;筛选模块,用于当所述n个请求消息中包括时间戳相同的请求消息时,所述客户端筛选所述n个请求消息中时间戳相同的m个待处理消息,所述m小于或等于n;第一排序模块,用于根据所述m个待处理消息中携带的用户身份标识id对所述m个待处理消息进行排序得到第一消息序列;第二排序模块,用于按照请求消息的时间戳对除所述m个待处理消息外的n-m个请求消息进行排序得到第二消息序列;插入模块,用于根据所述m个待处理消息的时间戳在所述n个请求消息的时间戳中的顺序,在所述第二消息序列中插入所述第一消息序列,以得到待显示的目标消息序列。第三方面,提供了一种终端,包括存储器,处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面任一所述的请求消息处理方法。第四方面,提供了一种存储介质,当所述存储介质中的指令由终端的处理器执行时,使得所述终端能够执行一种请求消息处理方法,所述方法为第一方面任一所述的请求消息处理方法。第五方面,提供了一种请求消息处理系统,所述请求消息处理系统包括:多个客户端和聊天室消息服务器,所述客户端设置在第二方面所述的请求消息处理装置上。可选地,所述请求消息处理系统还包括:外部存储器和连接管理服务器,所述连接管理服务器用于接收所述多个客户端发送的加入请求,所述加入请求包括所述加入请求的发送者的用户id;所述聊天室消息服务器用于接收所述连接管理服务器转发的所述加入请求;所述聊天室消息服务器用于根据接收到的加入请求统计所述用户id的个数;所述聊天室消息服务器用于将所述所述用户id的个数和所述用户id存储到所述外部存储器中。可选地,所述聊天室消息服务器还用于监控所述聊天室消息服务器的性能参数;当所述聊天室消息服务器的性能参数低于预设的参数阈值时,所述聊天室消息服务器还用于根据所述聊天室消息服务器的性能参数,关闭所述聊天室消息服务器的部分业务。可选地,所述请求消息处理系统包括多个所述聊天室消息服务器。可选地,所述请求消息处理系统还包括:与所述聊天室消息服务器串行设置的辅助消息处理服务器,所述辅助消息处理服务器包括:串行设置的消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少一个;所述消息禁言子服务器用于执行聊天室消息禁言管理动作;所述消息敏感词过滤子服务器用于执行消息的敏感词过滤动作;所述历史记录子服务器用于执行存储历史消息和/或记录日志动作。本发明实施例提供的技术方案带来的有益效果是:本发明实施例提供的请求消息处理方法、装置及系统、终端和存储介质,当n个请求消息中包括m个时间戳相同的待处理消息时,客户端通过根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列,按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列,根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列,使得n个请求消息中的每个消息在待显示的目标消息序列中有唯一的顺序,使得客户端在根据该待显示的目标消息序列对n个请求消息进行显示时不会出现乱序的情况。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1-1是本发明部分实施例中提供的一种请求消息处理方法所涉及的请求消息处理系统的结构示意图;图1-2是本发明部分实施例中提供的另一种请求消息处理方法所涉及的请求消息处理系统的结构示意图;图1-3是本发明部分实施例中提供的又一种请求消息处理方法所涉及的请求消息处理系统的结构示意图;图2是本发明实施例提供的一种请求消息处理方法的流程图;图3是本发明实施例提供的另一种请求消息处理方法的流程图;图4是相关技术中请求消息处理系统的结构示意图;图5是本发明部分实施例中提供的一种请求消息处理系统中设置辅助消息处理服务器的结构示意图;图6是本发明实施例提供的一种第一客户端对拉取的请求消息进行排序的方法流程图;图7是本发明实施例提供的一种第一客户端根据待显示的目标消息序列显示7个请求消息的显示界面的示意图;图8是本发明实施例提供的一种请求消息处理装置的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。请参见图1-1,其示出了本发明部分实施例中提供的请求消息处理方法所涉及的请求消息处理系统的结构示意图。该请求消息处理系统可以应用于直播领域,如图1-1所示,该请求消息处理系统可以包括:多个客户端110、连接管理服务器120和聊天室消息服务器130。客户端110安装在能够发送消息的智能手机、电脑、多媒体播放器、电子阅读器、可穿戴式设备等终端上,该客户端可以为直播客户端。连接管理服务器120和聊天室消息服务器130均可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。客户端110与连接管理服务器120、连接管理服务器120与聊天室消息服务器130之间可以通过有线网络或无线网络建立连接。客户端110可以发出请求消息,连接管理服务器120可以用于管理客户端110与聊天室消息服务器130的连接,聊天室消息服务器130可以接收连接管理服务器120向其转发的客户端110发送的请求消息,并根据其接收到请求消息的时间确定对应请求消息的时间戳,同时,聊天室消息服务器130还可以通过连接管理服务器120向客户端110发送其接收到的请求消息,以便于用户通过客户端110查看其所在的聊天室中产生的请求消息,进而实现直播过程中的互动。进一步地,为了避免聊天室消息服务器出现性能瓶颈,即出现性能下降甚至崩溃的现象,请求消息处理系统还可以包括:与聊天室消息服务器130串行设置的辅助消息处理服务器140,该辅助消息处理服务器140可以包括:串行设置的消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少一个,该聊天室系统对应的结构示意图请参考图1-2。其中,消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器均可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。且串行设置的消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器之间可以通过有线网络或无线网络建立连接,辅助消息处理服务器140与连接管理服务器120、辅助消息处理服务器140与聊天室消息服务器130之间均可以通过有线网络或无线网络建立连接。消息禁言子服务器可以用于执行聊天室消息禁言管理动作,消息敏感词过滤子服务器可以用于执行消息的敏感词过滤动作,历史记录子服务器可以用于执行存储历史消息和/或记录日志动作,通过消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少一个执行相应的动作,辅助消息处理服务器140可以为聊天室消息服务器130分担部分请求消息处理任务,以避免聊天室消息服务器130出现性能瓶颈。图1-2中其他服务器的工作原理可以相应参考图1-1中的对应服务器,此处不再赘述。可选地,由于服务器的内存大小有限,请求消息处理系统还可以包括:外部存储器150,该聊天室系统对应的结构示意图请参考图1-3。外部存储器150可以是只读存储器,磁盘、光盘或存储服务器等,其与聊天室消息服务器130可以通过有线或无线的方式连接,该外部存储器150用于存储聊天室消息服务器130向其发送的用户身份标识(英文:identity;简称:id),并根据该用户id统计参与同一直播聊天室的用户的总人数。图1-3中其他服务器的工作原理可以相应参考图1-1和图1-2中的对应服务器,此处不再赘述。需要说明的是,本发明实施例提出的请求消息处理系统可以包括一个或多个聊天室消息服务器,图1-1、图1-2和图1-3中仅示出其包括一个聊天室消息服务器130的情况,请求消息处理系统包括多个聊天室消息服务器时的结构示意图可以相应参考图1-1、图1-2和图1-3中所示的请求消息处理系统的结构示意图,此处不再赘述。本发明实施例提供了一种请求消息处理方法,该方法可以应用于客户端,如图2所示,该方法可以包括:步骤201、客户端在从聊天室消息服务器拉取n个请求消息后,检测n个请求消息中是否包括时间戳相同的请求消息。其中,时间戳为聊天室消息服务器确定的时间戳。步骤202、当n个请求消息中包括时间戳相同的请求消息时,客户端筛选n个请求消息中时间戳相同的m个待处理消息。其中,m小于或等于n。步骤203、客户端根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列。步骤204、客户端按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列。步骤205、客户端根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列。综上所述,本发明实施例提供的请求消息处理方法,当n个请求消息中包括m个时间戳相同的待处理消息时,客户端通过根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列,按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列,根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列,使得n个请求消息中的每个消息在待显示的目标消息序列中有唯一的顺序,使得客户端在根据该待显示的目标消息序列对n个请求消息进行显示时不会出现乱序的情况。图3为本发明实施例提供的另一种请求消息处理方法,该方法可以应用于图1-1、图1-2或图1-3任一所示的请求消息处理系统,由于在实际应用中,请求消息处理系统可以包括多个客户端,以及一个或多个聊天室消息服务器,本发明实施例在图3中以第一客户端和第一聊天室消息服务器为例,对本发明实施例提出的请求消息处理方法进行说明,该第一客户端为多个客户端中的任一个,其他客户端的动作可以参考该第一客户端,当请求消息处理系统包括一个聊天室消息服务器时,该聊天室消息服务器即为第一聊天室消息服务器,当请求消息处理系统包括多个聊天室消息服务器时,该第一聊天室消息服务器为多个聊天室消息服务器中的任一个,其他聊天室消息服务器的动作可以参考该第一聊天室消息服务器,如图3所示,该方法可以包括:步骤301、连接管理服务器接收多个客户端发送的加入请求。其中,加入请求包括该加入请求的发送者的用户id,该加入请求是用户通过客户端发送的用于请求加入聊天室的加入请求,用户id用于唯一标识用户。示例地,假设在某一时间段内,请求消息处理系统中某个连接管理服务器共接收到了5个客户端发送的加入同一聊天室的加入请求,该5个加入请求包括的用户id分别为:14-45-f6-8d-59-ce、24-45-f6-8d-59-ce、24-45-c6-8d-59-ce、24-45-16-8d-59-ce和44-45-f6-8d-59-ce,其与加入请求标识的对应关系请参见表1。表1加入请求标识用户id0114-45-f6-8d-59-ce0224-45-f6-8d-59-ce0324-45-c6-8d-59-ce0424-45-16-8d-59-ce0544-45-f6-8d-59-ce步骤302、连接管理服务器向第一聊天室消息服务器转发加入请求。第一聊天室消息服务器用于根据接收到的加入请求中的用户id,将对应的用户id所标识的加入请求的发送者确定为其管理的用户,以便于在直播过程中对相应用户的请求消息进行处理,例如:统计其管理的用户的数目,向其管理的用户发送其接收到的其他用户发送的请求消息,以便于实现直播过程中的互动。可选地,当请求消息处理系统包括多个聊天室消息服务器时,连接管理服务器可以根据加入请求包括的用户id将加入请求分发给聊天室消息服务器,使多个聊天室消息服务器中的每个聊天室消息服务器分别管理同一聊天室中不同的用户,以减轻聊天室消息服务器处理请求消息的负担。示例地,假设请求消息处理系统中包括两个聊天室消息服务器,分别为聊天室消息服务器1和聊天室消息服务器2,聊天室消息服务器1接收到连接管理服务器向其分发的2个加入请求,该2个加入请求包括的用户id分别为:14-45-f6-8d-59-ce和24-45-c6-8d-59-ce,则聊天室消息服务器1可将该2个用户id所标识的加入请求的发送者确定为其管理的用户,并在直播过程中对该2个用户的请求消息进行处理,聊天室消息服务器2接收到连接管理服务器向其分发的3个加入请求,该3个加入请求包括的用户id分别为:24-45-f6-8d-59-ce、24-45-16-8d-59-ce和44-45-f6-8d-59-ce,则聊天室消息服务器2可将该3个用户id所标识的加入请求的发送者确定为其管理的用户,并在直播过程中对该3个用户的请求消息进行处理。步骤303、第一聊天室消息服务器根据接收到的加入请求统计用户id的个数,并将用户id的个数和用户id存储到外部存储器中。其中,外部存储器可以是常规意义上的存储器,例如:只读存储器,磁盘、或光盘等存储器;外部存储器还可以是用于存储的服务器,例如:redis(一个开源的内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理)或者ssdb(一个c/c++语言开发的高性能数据库服务器,用来替代或者与redis配合存储十亿级别列表的数据);或者,外部存储器还可以是进程外缓存,本发明实施例对其不做具体限定。可选地,将用户id的个数和用户id存储到外部存储器中的过程的具体实现可以为:采用近期最少使用算法(英文:leastrecentlyused;缩写:lru)确定内存中不经常使用的数据,然后采用指定的数据管理方法,如oracle(一种数据库管理系统)的数据管理方法,将这些数据移出内存并存储到外部存储器中,以在内存大小有限的情况下,腾出一定的内存空间来加载其它的数据,进而提高计算机的并发度。示例地,假设请求消息处理系统中包括两个聊天室消息服务器,分别为聊天室消息服务器1和聊天室消息服务器2,聊天室消息服务器1接收到2个加入请求,其包括的用户id分别为:14-45-f6-8d-59-ce和24-45-c6-8d-59-ce,聊天室消息服务器2接收到3个加入请求,其包括的用户id分别为:24-45-f6-8d-59-ce、24-45-16-8d-59-ce和44-45-f6-8d-59-ce,则聊天室消息服务器1统计得到的用户id个数为2,聊天室消息服务器2统计得到的用户id个数为3,并且,聊天室消息服务器1和聊天室消息服务器2可以分别将该用户id个数和对应的用户id存储到外部存储器中,以便于查询使用,进而实现直播过程中的互动。需要说明的是,聊天室消息服务器将用户id的个数和用户id存储到外部存储器中时,该存储的用户id可以为部分用户的用户id(例如:最新加入直播的用户的id)或者全部用户的用户id,当将部分用户的用户id存储到外部存储器中时,可以将经常查询的用户的用户id存储在内存中,当需要查询时可直接调用内存中存储的该数据,以加快查询速度,且将不经常查询的用户的用户id存储在外部存储器,在需要使用时在加载,以减小内存空间的占用。相关技术中,聊天室消息处理系统包括:连接管理服务器、多个聊天室丢弃服务器、多个聊天室服务器和多个聊天室消息服务器,其结构示意图请参考图4,其中,连接服务器根据多个客户端发送的请求消息的用户id将多个请求消息均匀地分发至聊天室丢弃服务器,每个聊天室消息丢弃服务器根据一定的丢弃策略对接收的请求消息进行丢弃,以降低该系统中服务器的压力,并使最终显示在客户端上的消息在肉眼可接受的范围内,并根据请求消息包括的聊天室id将允许通过的请求消息分发至多个聊天室服务器,使得同一聊天室的消息均发送至同一聊天室服务器,每个聊天室服务器用于根据请求消息的接收时间确定其接收的请求消息的时间戳,以确保其接收的每个请求消息的时间戳唯一,并按请求消息的时间戳按时间先后的顺序将请求消息存储至kafka(一个分布式的、可分区的和可复制的消息系统)等消息系统中,以便于对请求消息进行消息统计和查询等处理,聊天室服务器还用于请求消息的禁言和敏感词过滤等处理,以及查询聊天室中的所有用户和用户总数等。聊天室服务器根据用户id将多个请求消息分发至聊天室消息服务器,聊天室消息服务器用于将请求消息发送至客户端,以便于客户端查看其所属的聊天室中的请求消息。在该相关技术中,由于同一聊天室服务器的消息均被分发至同一聊天室服务器,该聊天室服务器需要保存该聊天室中包括用户通过客户端发送的请求消息和用户id等所有的信息,因此,当聊天室的用户非常多时,这些信息对内存等资源的消耗非常大。相对于相关技术,本发明实施例的聊天室消息处理系统包括外部存储器,通过将用户id的个数和用户id存储到外部存储器中,可以减小对内存等资源的消耗,加快对请求消息的处理速度。步骤304、连接管理服务器接收多个客户端发送的请求消息。可选地,多个客户端中的每个客户端均可以发送多条请求消息,该多条请求消息中的每条请求消息包括用户id。该请求消息可以为文字消息或图片消息等,本发明实施例对其不做具体限定。步骤305、连接管理服务器将接收的多个请求消息发送至辅助消息处理服务器。其中,辅助消息处理服务器与聊天室消息服务器串行设置,该辅助消息处理服务器包括:串行设置的消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少一个,消息禁言子服务器用于执行聊天室消息禁言管理动作,消息敏感词过滤子服务器用于执行消息的敏感词过滤动作,历史记录子服务器用于执行存储历史消息和/或记录日志动作。通过在聊天室消息处理系统中设置该辅助消息处理服务器,在直播过程中,辅助消息处理服务器可以为聊天室消息服务器分担部分请求消息处理任务,例如:聊天室消息禁言管理任务、消息的敏感词过滤任务和存储历史消息和/或记录日志(即埋点)任务,以减少聊天室消息服务器的消息处理任务,进而以避免聊天室消息服务器因消息处理任务过多而出现性能瓶颈。可选地,当请求消息处理系统包括多个聊天室消息服务器时,相应的,辅助消息处理服务器的个数也可以为多个,连接管理服务器可以根据请求消息包括的用户id将请求消息分发给辅助消息处理服务器,以减轻辅助消息处理服务器处理的消息处理负担。需要说明的是,当辅助消息处理服务器中包括消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少两个时,该至少两个子服务在串行设置中的顺序可以根据实际情况进行调整,例如:请参考图5,可以在聊天室消息处理系统中设置消息禁言子服务器的输入与连接管理服务器连接,其输出与消息敏感词过滤子服务器的输入连接,消息敏感词过滤子服务器的输出与历史记录子服务器的输入连接,历史记录子服务器的输出与聊天室消息服务器的输入连接,本发明实施例对此不做具体限定。并且,当请求消息处理系统包括多个聊天室消息服务器时,多个聊天室消息服务器与连接管理服务器的中间可以均设置辅助消息处理服务器,也可以均不设置辅助消息处理服务器,或者,也可以在部分聊天室消息服务器与连接管理服务器的中间设置辅助消息处理服务器,在其余聊天室消息服务器与连接管理服务器的中间不设置辅助消息处理服务器,同时,在多个聊天室消息服务器中的每个聊天室消息服务器与连接管理服务器之间设置的子服务器的个数和相应子服务器的顺序也可以相同或不相同,其具体设置情况均可以根据实际需要进行调整,本发明实施例对此也不做具体限定。可选地,作为步骤305的第二种可实现方式,聊天室消息服务器还可以实时监控自身的性能参数,并在聊天室消息服务器的性能参数低于预设的参数阈值时,根据聊天室消息服务器的性能参数,关闭聊天室消息服务器的部分业务,以避免聊天室消息服务器出现性能瓶颈。其中,性能参数可以为中央处理器(英文:centralprocessingunit;简称cpu)的性能参数或内存的大小等参数,该性能参数可以反映聊天室服务器的性能。该可实现方式可以包括多种实现情况,本发明实施例以以下两种实现情况为例对其进行说明:第一种实现情况,预设的参数阈值为一个预设的固定阈值,当聊天室消息服务器的性能参数低于该预设的固定阈值时,关闭聊天室消息服务器中预设的固定业务。示例地,假设预设的固定阈值为60,预设的固定业务为打印日志业务,当聊天室消息服务器的性能参数低于60时,关闭聊天室消息服务器的打印日志业务。第二种实现情况,预设的参数阈值为多个预设的固定阈值,该多个预设的固定阈值中的每个预设的固定阈值分别与一个预设的固定业务对应,当聊天室消息服务器的性能参数低于某个预设的固定阈值时,关闭聊天室消息服务器中对应的预设的固定业务。示例地,假设多个预设的固定阈值为60和80,预设的固定业务为打印日志业务和历史消息存储业务,当聊天室消息服务器的性能参数低于60时,仅关闭聊天室消息服务器的打印日志业务,当聊天室消息服务器的性能参数低于80时,在关闭聊天室消息服务器的打印日志业务的基础上,继续关闭聊天室消息服务器的历史消息存储业务。可选地,作为步骤305的第三种可实现方式,聊天室消息服务器可以实时监控自身的性能参数,并在聊天室消息服务器的性能参数低于预设的参数阈值时,发出告警信息,提示对聊天室消息服务器进行维护处理,例如:提示维护人员对相应的聊天室服务器进行扩容,以保证聊天室服务器的性能。由于在聊天室消息处理系统中设置辅助消息处理服务器会增加内网带宽的消耗,即相对地增加请求消息在聊天室消息处理系统中的传输时间,因此,实际应用中,可以选择性地执行上述可实现方式中的一种或多种,例如:可以选择是否在聊天室消息处理系统中设置辅助消息处理服务器,也即是,可以在聊天室消息服务器可能出现性能瓶颈的情况下,选择设置辅助消息处理服务器,在聊天室消息服务器没有可能出现性能瓶颈的情况下,选择不设置辅助消息处理服务器。并且,也可以根据实际情况,选择性地执行步骤305。步骤306、辅助消息处理服务器将处理后的请求消息发送至第一聊天室消息服务器。当聊天室消息处理系统中未设置辅助消息处理服务器时,连接管理服务器可将请求消息直接发送至第一聊天室消息服务器,并且,当聊天室消息处理系统包括多个聊天室消息服务器时,连接管理服务器可根据用户id将请求消息分发至多个聊天室消息服务器。需要说明的是,在第一聊天室消息服务器接收到向其发送的请求消息后,可以将其接收到请求消息的接收时间确定为相应请求消息的时间戳。示例地,假设在某段时间内,第一聊天室消息服务器共接收了7个请求消息,分别为请求消息1、请求消息2、请求消息3、请求消息4、请求消息5、请求消息6和请求消息7,其中,请求消息1、请求消息2、请求消息3、请求消息4和请求消息5的接收时间均为16:11:12,请求消息6的接收时间为16:11:13,请求消息7的接收时间为16:11:14,则第一聊天室消息服务器可将16:11:12确定为请求消息1、请求消息2、请求消息3、请求消息4和请求消息5的时间戳,将16:11:13确定为请求消息6的时间戳,将16:11:14确定为请求消息7的时间戳。步骤307、第一聊天室消息服务器将处理后的请求消息发送至其管理的用户所登录的客户端。其中,第一聊天室消息服务器管理的用户是指步骤302中,第一聊天室消息服务器根据用户id将其所标识的加入请求的发送者确定为其管理的用户。可选地,第一聊天室消息服务器向其管理的用户所登录的客户端发送的请求消息,是该客户端对应的用户参加的聊天室中其他用户发送的请求消息。且第一聊天室消息服务器将请求消息发送至其管理的用户所登录的客户端的过程,可以是直接向客户端发送请求消息,也可以通过向客户端发送拉取消息的通知,在客户端接收到拉取消息的通知后,当登录该客户端的用户需要查看对应的消息时,其可以通过客户端向聊天室消息服务器发送拉取消息的请求,然后聊天室消息服务器根据该拉取消息的请求向客户端发送该拉取消息的请求所指示的请求消息,其中,拉取消息的请求包括拉取消息的时间节点,拉取消息的请求所指示的请求消息为从该时间节点到客户端向聊天室消息服务器发送拉取消息的请求的时刻之间聊天室消息服务器接收到的请求消息。第一聊天室消息服务器向客户端发送的请求消息中包括相应请求消息的时间戳。需要说明的是,使用发送拉取消息通知的方式,通过在拉取消息通知中保存消息节点的信息,以保证用户能够从该节点处对请求消息进行查看,能够确保用户稳定地接收到相应的请求消息。例如:某用户在某次直播过程中某次查看请求消息的时间节点的时刻为15:30:30,且在该时刻后网络出现问题,直至15:31:30网络恢复正常,当该用户在15:31:30再次查看请求消息时,可以在拉取请求消息在15:30:30的消息节点处的消息通知,以查看15:30:30到15:31:30的时间段的请求消息。在该过程中,若聊天室消息服务器向该用户发送的请求消息是请求消息本身,由于15:30:30到15:31:30的时间段内网络出现问题,该时间段的内消息会丢失,则该用户在15:31:30无法查看该时间段内的请求消息。因此,使用发送拉取消息通知的方式,能够确保用户稳定地接收到请求消息。步骤308、第一客户端对接收的n个请求消息进行排序,以得到待显示的目标消息序列。在第一聊天室消息服务器向客户端发送了请求消息后,客户端需要先对接收到的请求消息进行排序,然后再根据排序顺序对相应的请求消息进行显示。可选地,当第一客户端接收的请求消息为拉取的请求消息时,如图6所示,第一客户端对该拉取的请求消息进行排序的过程可以包括:步骤3081、第一客户端在从聊天室消息服务器拉取n个请求消息后,检测n个请求消息中是否包括时间戳相同的请求消息。其中,时间戳为聊天室消息服务器确定的时间戳。当第一客户端在从聊天室消息服务器拉取n个请求消息后,需要先检测n个请求消息中是否包括时间戳相同的请求消息,然后根据不同的检测结果对接收到的n个请求消息进行排序,也即是,当n个请求消息中不包括时间戳相同的请求消息时,第一客户端可以按照n个请求消息的时间戳对n个请求消息进行排序,以得到待显示的目标消息序列;当n个请求消息中包括时间戳相同的请求消息时,第一客户端需要根据请求消息的用户id和请求消息的时间戳对n个请求消息进行排序,以得到待显示的目标消息序列,具体地,其排序过程请参考步骤3082至步骤3085。步骤3082、当n个请求消息中包括时间戳相同的请求消息时,第一客户端筛选n个请求消息中时间戳相同的m个待处理消息。其中,m小于或等于n。当n个请求消息中包括时间戳相同的请求消息时,该时间戳相同的消息为排序时需要重点处理的消息,需要将其筛选出来为其排序,该筛选出来的m个请求消息即为待处理消息。示例地,假设第一客户端获取了7个请求消息,该7个请求消息分别为请求消息1、请求消息2、请求消息3、请求消息4、请求消息5、请求消息6和请求消息7,其中,请求消息1、请求消息2、请求消息3、请求消息4和请求消息5的时间戳均为16:11:12,请求消息6的时间戳为16:11:13,请求消息7的时间戳为16:11:14,经过检测可知该7个请求消息中包括有时间戳相同的请求消息,第一客户端对该7个请求消息进行筛选,得到时间戳相同的请求消息为请求消息1、请求消息2、请求消息3、请求消息4和请求消息5,该5个请求消息为待处理消息。步骤3083、第一客户端根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列。可选地,由于用户id由预设字符组成,且该预设字符可以包括:数字和/或字母组成,因此,客户端根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列的过程,具体可以为:按照用户id中的预设字符的先后顺序,对m个待处理消息进行排序得到第一消息序列,可选地,预设字符的先后顺序是指:将预设字符中包括的多个字符按照由左至右的顺序进行比较,预设字符中相同字符位上的字符数值小的数字的顺序为先,字母表中顺序在前的字母为先,且在相同字符位上,数字的顺序为先,字母的顺序为后(实际应用中,该预设字符的顺序也可以根据实际情况进行设定,此处只是一种示例)。示例地,假设5个待处理消息分别为:请求消息1、请求消息2、请求消息3、请求消息4和请求消息5,其用户id分别为:14-45-f6-8d-59-ce、24-45-f6-8d-59-ce、24-45-c6-8d-59-ce、24-45-16-8d-59-ce和44-45-f6-8d-59-ce,按照用户id中的预设字符的先后顺序,对该5个待处理消息进行排序,得到的第一消息序列为:请求消息1、请求消息4、请求消息3、请求消息2和请求消息5。需要说明的是,请求消息还包括聊天室id,因此,还可以根据请求消息包括的聊天室id和用户id组成的字符串,对n个请求消息进行排序,以保证请求消息不会乱序。步骤3084、第一客户端按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列。在对每个待处理消息进行排序后,还需要对n个请求消息中除m个待处理消息外的n-m个请求消息进行排序,以得到第二消息序列。示例地,假设第一客户端获取了7个请求消息,该7个请求消息分别为请求消息1、请求消息2、请求消息3、请求消息4、请求消息5、请求消息6和请求消息7,其中,请求消息1、请求消息2、请求消息3、请求消息4和请求消息5的时间戳均为16:11:12,请求消息6的时间戳为16:11:13,请求消息7的时间戳为16:11:14,经过检测可知该7个请求消息中包括有时间戳相同的请求消息,第一客户端对该7个请求消息进行筛选,得到请求消息1、请求消息2、请求消息3、请求消息4和请求消息5为5个待处理消息,请求消息6和请求消息7为除5个待处理消息外的请求消息,按照请求消息的时间戳对该2个消息进行排序可得第二消息序列为:请求消息6和请求消息7。步骤3085、第一客户端根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列。在对m个待处理消息和除待处理消息外的n-m个请求消息进行排序得到第一消息序列和第二消息序列后,还需要根据该n个请求消息的时间戳对第一消息序列和第二消息序列进行排序,以得到待显示的目标消息序列,其排序方法为:根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,确定第一消息序列对应的时间戳在第二消息序列中包括的请求消息的时间戳中的位置,然后在第二消息序列中的该位置处插入第一消息序列,进而得到待显示的目标消息序列。示例地,假设第一消息序列为:请求消息1、请求消息4、请求消息3、请求消息2和请求消息5,其对应的时间戳为16:11:12,第二消息序列为:请求消息6和请求消息7,其对应的时间戳分别为16:11:13和16:11:14,根据该三个时间戳的顺序可知,时间戳16:11:12在时间戳16:11:13和16:11:14前面,则可在第二消息序列的起始位置处插入第一消息序列,即在请求消息6和请求消息7前面插入请求消息1、请求消息4、请求消息3、请求消息2和请求消息5,以得到待显示的目标消息序列,即待显示的目标消息序列为:请求消息1、请求消息4、请求消息3、请求消息2、请求消息5、请求消息6和请求消息7。步骤309、第一客户端根据待显示的目标消息序列,显示n个请求消息。第一客户端在确定聊天室消息服务器发送的拉取的n个请求消息后,可以根据得到的待显示的目标消息序列显示该n个请求消息。示例地,假设聊天室消息服务器发送的拉取的7个请求消息分别为请求消息1、请求消息2、请求消息3、请求消息4、请求消息5、请求消息6和请求消息7,其中,该请求消息的内容分别为:感觉你今天心情不好啊、口型口型啊、唱首歌吧、你今天好漂亮、“掌声的表情”、“送花的图案”和呦呵呵,根据该7个请求消息得到的待显示的目标消息序列为:请求消息1、请求消息4、请求消息3、请求消息2、请求消息5、请求消息6和请求消息7,第一客户端根据该待显示的目标消息序列显示该7个请求消息的显示界面请参考图7。相关技术中,当聊天室消息处理系统中只有一个服务器时,聊天室消息服务器会将接收到的请求消息的接收时间确定为请求消息的时间戳,当客户端根据该确定的时间戳显示消息时,其显示的消息就会出现乱序的情况。虽然,相关技术针对该情况对确定请求消息时间戳的方法进行了改进,即服务器将接收到的请求消息的接收时间确定为请求消息的时间戳,且当接收到的多条请求消息的接收时间相同时,将该多条请求消息以接收时间对应的时间戳为起始时间戳依次打上递增的时间戳,且每两个相邻的时间戳之差为1,以确保接收到的请求消息的时间戳不同。但是,在图4所示的聊天室消息处理系统中,多个服务器中的每个服务器只能根据各自接收到的请求消息的接收时间确定请求消息的时间戳,因此,即使每个服务器均根据各自接收的请求消息的接收时间为各自接收到的请求消息确定了唯一的时间戳,多个聊天室服务器确定的请求消息的时间戳仍然会出现时间戳相同的情况,客户端根据其显示获得的多条请求消息时仍然会出现乱序的情况。相对于相关技术,本发明实施例提供的请求消息处理方法,在接收到聊天室消息服务器发送的拉取的n个请求消息后,通过在客户端上根据拉取的请求消息的用户id对时间戳相同的请求消息进行排序,以得到待显示的目标消息序列,然后根据该待显示的目标消息序列在客户端上显示请求消息,保证了显示的消息不会出现乱序的情况,且由于在每次接收到的拉取请求消息后对请求消息进行排序,也保证了正常直播时消息的显示顺序和直播回放时消息的显示顺序能够保持一致。需要说明的是,本发明实施例提供的请求消息处理方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如:可以选择性地执行步骤303和步骤305,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。综上所述,本发明实施例提供的请求消息处理方法,当n个请求消息中包括m个时间戳相同的待处理消息时,客户端通过根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列,按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列,根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列,使得n个请求消息中的每个消息在待显示的目标消息序列中有唯一的顺序,使得客户端在根据该待显示的目标消息序列对n个请求消息进行显示时不会出现乱序的情况。图8为本发明实施例提供的一种请求消息处理装置800的结构示意图,如图8所示,该请求消息处理装置800可以包括:检测模块810,用于在从聊天室消息服务器拉取n个请求消息后,检测n个请求消息中是否包括时间戳相同的请求消息,时间戳为聊天室消息服务器确定的时间戳。筛选模块811,用于当n个请求消息中包括时间戳相同的请求消息时,客户端筛选n个请求消息中时间戳相同的m个待处理消息,m小于或等于n。第一排序模块812,用于根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列。第二排序模块813,用于按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列。插入模块814,用于根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列。综上所述,本发明实施例提供的请求消息处理装置,当n个请求消息中包括m个时间戳相同的待处理消息时,通过第一排序模块根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列,第二排序模块按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列,插入模块根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列,使得n个请求消息中的每个消息在待显示的目标消息序列中有唯一的顺序,使得客户端在根据该待显示的目标消息序列对n个请求消息进行显示时不会出现乱序的情况。可选地,用户id由预设字符组成,预设字符包括:数字和/或字母组成,第一排序模块,具体可以用于:按照用户id中的预设字符的先后顺序,对m个待处理消息进行排序得到第一消息序列。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。综上所述,本发明实施例提供的请求消息处理装置,当n个请求消息中包括m个时间戳相同的待处理消息时,通过第一排序模块根据m个待处理消息中携带的用户身份标识id对m个待处理消息进行排序得到第一消息序列,第二排序模块按照请求消息的时间戳对除m个待处理消息外的n-m个请求消息进行排序得到第二消息序列,插入模块根据m个待处理消息的时间戳在n个请求消息的时间戳中的顺序,在第二消息序列中插入第一消息序列,以得到待显示的目标消息序列,使得n个请求消息中的每个消息在待显示的目标消息序列中有唯一的顺序,使得客户端在根据该待显示的目标消息序列对n个请求消息进行显示时不会出现乱序的情况。本发明实施例还提供了一种请求消息处理系统,该请求消息处理系统可以为图1-1、图1-2或图1-3任一所示的请求消息处理系统,其可以包括:多个客户端和聊天室消息服务器,其中,客户端设置在图8所示的请求消息处理装置上。可选地,请求消息处理系统还包括:外部存储器和连接管理服务器,连接管理服务器用于接收多个客户端发送的加入请求,加入请求包括加入请求的发送者的用户id。聊天室消息服务器用于接收连接管理服务器转发的加入请求。聊天室消息服务器用于根据接收到的加入请求统计用户id的个数。聊天室消息服务器用于将用户id的个数和用户id存储到外部存储器中。可选地,聊天室消息服务器还用于监控聊天室消息服务器的性能参数。当聊天室消息服务器的性能参数低于预设的参数阈值时,聊天室消息服务器还用于根据聊天室消息服务器的性能参数,关闭聊天室消息服务器的部分业务。可选地,请求消息处理系统包括多个聊天室消息服务器。可选地,请求消息处理系统还包括:与聊天室消息服务器串行设置的辅助消息处理服务器,辅助消息处理服务器包括:串行设置的消息禁言子服务器、消息敏感词过滤子服务器和历史记录子服务器中的至少一个。消息禁言子服务器用于执行聊天室消息禁言管理动作。消息敏感词过滤子服务器用于执行消息的敏感词过滤动作。历史记录子服务器用于执行存储历史消息和/或记录日志动作。本发明实施例还提供了一种终端,包括存储器,处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,可以实现图2或图3所示的请求消息处理方法。本发明实施例还提供了一种存储介质,当所述存储介质中的指令由终端的处理器执行时,使得所述终端能够执行一种请求消息处理方法,所述方法为图2或图3所示的请求消息处理方法。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1