一种聊天室消息分发方法、装置及电子设备制造方法及图纸

技术编号:18723501 阅读:72 留言:0更新日期:2018-08-22 00:47
本发明专利技术实施例提供了一种聊天室消息分发方法、装置及电子设备,其中,该方法包括:确定已接收的聊天消息的消息并发量,在消息并发量大于或等于预设并发量阈值时,将已接收的聊天消息存储在预设哈希表中;在预设哈希表中,识别满足预设条件的聊天消息,将识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列;按照预设轮询周期,轮询预设待推送队列,按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。能够实现在聊天消息并发量突增的情况下,保证服务器正常运行,并且能够降低服务器发送聊天室消息的延迟。

A chat room message distribution method, device and electronic device

The embodiment of the present invention provides a chat room message distribution method, apparatus and electronic equipment, wherein the method comprises determining the message concurrency amount of the received chat message, storing the received chat message in a preset hash table when the message concurrency amount is greater than or equal to the preset concurrency threshold, and preset hash table. In the table, the chat messages satisfying the preset conditions are identified, and the chat room identification information corresponding to the chat messages satisfying the preset conditions is stored in the preset push queue; according to the preset polling cycle, the preset push queue is polled, and the chat room identification information in the preset push queue is polled from the preset hash table. The chat messages corresponding to the identification information of each chat room are obtained and sent to the corresponding user terminal. It can ensure the normal operation of the server and reduce the delay of sending chat messages.

【技术实现步骤摘要】
一种聊天室消息分发方法、装置及电子设备
本专利技术涉及即时通信
,特别是涉及一种聊天室消息分发方法、装置及电子设备。
技术介绍
随着互联网的高速发展,即时通信已成为人们生活中不可或缺的交流手段,在平时的休闲娱乐及工作中都得到了广泛的应用。聊天室作为一种新兴的即时通信方式,备受人们青睐。对于互联网环境下的直播聊天室,用户每发送一条消息,该消息都会首先传输到服务器,然后经由该服务器分发到该聊天室中的其他每个用户。然而,专利技术人在实现本专利技术的过程中发现,现有技术至少存在如下问题:当直播聊天室的用户比较多,并且集中在热度比较高的直播时段,在直播聊天室中发送消息时,容易使得消息的并发量增大。当直播聊天室中发送的消息的并发量大于服务器的出口带宽时,会使得聊天室的消息难以发送出去,从而使得聊天室的消息的延迟增大,降低了聊天室的用户的体验。
技术实现思路
本专利技术实施例的目的在于提供一种聊天室消息分发方法、装置及电子设备,以实现在聊天消息并发量突增的情况下,保证服务器能够正常运行。具体技术方案如下:在本专利技术实施的一个方面,本专利技术实施例提供了一种聊天室消息分发方法,应用于服务器,该方法包括:确定已接收的聊天消息的消息并发量,并判断消息并发量是否大于或等于预设并发量阈值;在消息并发量大于或等于预设并发量阈值时,将已接收的聊天消息存储在预设哈希表中;识别存储在预设哈希表中的满足预设条件的聊天消息,并将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中;按照预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。可选的,在判断消息并发量是否大于或等于预设并发量阈值之后,本专利技术实施例的一种聊天室消息分发方法,还包括:在消息并发量小于预设并发量阈值时,将已接收的聊天消息发送至对应的用户终端。可选的,将已接收的聊天消息存储在预设哈希表中,包括:针对每条聊天消息,以该聊天消息所属的聊天室标识信息为关键字,以该聊天消息为与该关键字对应的键值,将该聊天消息存储在预设哈希表中。可选的,在将已接收的聊天消息存储在预设哈希表中之后,本专利技术实施例的一种聊天室消息分发方法,还包括:识别存储在预设哈希表中的不满足预设条件的聊天消息,将不满足预设条件的聊天消息发送至对应的用户终端。可选的,预设条件为:预设哈希表中,任一聊天室对应的聊天消息总条数小于或等于预设聊天室消息条数阈值;或者,任一聊天室的消息推送等待时长小于或等于预设等待时长阈值。可选的,将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中,包括:将所识别出的满足预设条件的聊天消息对应的聊天室标识信息取模,得到取模后的聊天室标识信息;将取模后的聊天室标识信息存储在预设待推送队列中。可选的,按照预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端,包括:按照预设轮询周期,以预设并行度轮询预设待推送队列中的各聊天室标识信息;从预设哈希表中,获取与各聊天室标识信息对应的聊天消息,并将与任一聊天室标识信息对应的聊天消息,发送至与该聊天室标识信息对应的用户终端。可选的,将所获取的聊天消息发送至对应的用户终端包括:对所获取的聊天消息进行序列化和压缩,得到压缩后的聊天消息,并将压缩后的聊天消息发送至对应的用户终端。可选的,在按照预设轮询周期,轮询预设待推送队列之前,本专利技术实施例的一种聊天室消息方法,还包括:实时监测服务器的负载,并判断服务器的负载是否小于预设负载阈值;其中,服务器的负载包括以下至少一项:处理器使用率、内存占用率和带宽占用率;相应的,按照预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端,包括:在服务器的负载小于预设负载阈值时,按照第一预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端;在服务器的负载大于或等于预设负载阈值时,按照第二预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。可选的,在将所获取的聊天消息发送至对应的用户终端之后,本专利技术实施例的一种聊天室消息分发方法,还包括:清理存储在预设待推送队列中的待清理聊天室标识信息;其中,待清理聊天室标识信息为在预设哈希表中不存在的聊天室标识信息。在本专利技术实施的又一方面,还提供了一种聊天室消息分发装置,应用于服务器,该装置包括:判断模块,用于确定已接收的聊天消息的消息并发量,并判断消息并发量是否大于或等于预设并发量阈值;存储模块,用于在消息并发量大于或等于预设并发量阈值时,将已接收的聊天消息存储在预设哈希表中;识别模块,用于识别存储在预设哈希表中的满足预设条件的聊天消息,并将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中;轮询发送模块,用于按照预设轮询周期,轮询预设待推送队列,并按照预设待推送队列中的聊天室标识信息,从预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。可选的,本专利技术实施例的一种聊天室消息分发装置,还包括:第一发送模块,用于在消息并发量小于预设并发量阈值时,将已接收的聊天消息发送至对应的用户终端。可选的,存储模块,具体用于:针对每条聊天消息,以该聊天消息所属的聊天室标识信息为关键字,以该聊天消息为与该关键字对应的键值,将该聊天消息存储在预设哈希表中。可选的,本专利技术实施例的一种聊天室消息分发装置,还包括:第二发送模块,用于识别存储在预设哈希表中的不满足预设条件的聊天消息,将不满足预设条件的聊天消息发送至对应的用户终端。可选的,预设条件为:预设哈希表中,任一聊天室对应的聊天消息总条数小于或等于预设聊天室消息条数阈值;或者,任一聊天室的消息推送等待时长小于或等于预设等待时长阈值。可选的,识别模块,具体用于:将所识别出的满足预设条件的聊天消息对应的聊天室标识信息取模,得到取模后的聊天室标识信息;将取模后的聊天室标识信息存储在预设待推送队列中。可选的,轮询发送模块,包括:轮询子模块,用于按照预设轮询周期,以预设并行度轮询预设待推送队列中的各聊天室标识信息;发送子模块,用于从预设哈希表中,获取与各聊天室标识信息对应的聊天消息,并将与任一聊天室标识信息对应的聊天消息,发送至与该聊天室标识信息对应的用户终端。可选的,轮询发送模块,具体用于:对所获取的聊天消息进行序列化和压缩,得到压缩后的聊天消息,并将压缩后的聊天消息发送至对应的用户终端。可选的,本专利技术实施例的一种聊天室消息分发装置,还包括:负载监测模块,用于实时监测服务器的负载,并判断服务器的负载是否小于预设负载阈值;其中,服务器的负载包括以下至少一项:处理器使用率、内存占用率和带宽占用率;相应的,轮询发送模本文档来自技高网...

【技术保护点】
1.一种聊天室消息分发方法,其特征在于,应用于服务器,所述方法包括:确定已接收的聊天消息的消息并发量,并判断所述消息并发量是否大于或等于预设并发量阈值;在所述消息并发量大于或等于所述预设并发量阈值时,将所述已接收的聊天消息存储在预设哈希表中;识别存储在所述预设哈希表中满足预设条件的聊天消息,并将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中;按照预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。

【技术特征摘要】
1.一种聊天室消息分发方法,其特征在于,应用于服务器,所述方法包括:确定已接收的聊天消息的消息并发量,并判断所述消息并发量是否大于或等于预设并发量阈值;在所述消息并发量大于或等于所述预设并发量阈值时,将所述已接收的聊天消息存储在预设哈希表中;识别存储在所述预设哈希表中满足预设条件的聊天消息,并将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中;按照预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。2.根据权利要求1所述的方法,其特征在于,在所述判断所述消息并发量是否大于或等于预设并发量阈值之后,所述方法还包括:在所述消息并发量小于所述预设并发量阈值时,将所述已接收的聊天消息发送至对应的用户终端。3.根据权利要求1所述的方法,其特征在于,所述将所述已接收的聊天消息存储在预设哈希表中,包括:针对每条聊天消息,以该聊天消息所属的聊天室标识信息为关键字,以该聊天消息为与该关键字对应的键值,将该聊天消息存储在预设哈希表中。4.根据权利要求1所述的方法,其特征在于,在将所述已接收的聊天消息存储在预设哈希表中之后,所述方法还包括:识别存储在所述预设哈希表中不满足预设条件的聊天消息,将所述不满足预设条件的聊天消息发送至对应的用户终端。5.根据权利要求1所述的方法,其特征在于,所述预设条件为:所述预设哈希表中,任一聊天室对应的聊天消息总条数小于或等于预设聊天室消息条数阈值;或者,任一聊天室的消息推送等待时长小于或等于预设等待时长阈值。6.根据权利要求1所述的方法,其特征在于,所述将所识别出的满足预设条件的聊天消息对应的聊天室标识信息存储在预设待推送队列中,包括:将所识别出的满足预设条件的聊天消息对应的聊天室标识信息取模,得到取模后的聊天室标识信息;将所述取模后的聊天室标识信息存储在预设待推送队列中。7.根据权利要求1所述的方法,其特征在于,所述按照预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端,包括:按照预设轮询周期,以预设并行度轮询所述预设待推送队列中的各聊天室标识信息;从所述预设哈希表中,获取与所述各聊天室标识信息对应的聊天消息,并将与任一聊天室标识信息对应的聊天消息,发送至与该聊天室标识信息对应的用户终端。8.根据权利要求1-7任一项所述的方法,其特征在于,所述将所获取的聊天消息发送至对应的用户终端包括:对所获取的聊天消息进行序列化和压缩,得到压缩后的聊天消息,并将所述压缩后的聊天消息发送至对应的用户终端。9.根据权利要求1所述的方法,其特征在于,在所述按照预设轮询周期,轮询所述预设待推送队列之前,所述方法还包括:实时监测所述服务器的负载,并判断所述服务器的负载是否小于预设负载阈值;其中,所述服务器的负载包括以下至少一项:处理器使用率、内存占用率和带宽占用率;相应的,所述按照预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端,包括:在所述服务器的负载小于所述预设负载阈值时,按照第一预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端;在所述服务器的负载大于或等于所述预设负载阈值时,按照第二预设轮询周期,轮询所述预设待推送队列,并按照所述预设待推送队列中的聊天室标识信息,从所述预设哈希表中获取与各聊天室标识信息对应的聊天消息,并将所获取的聊天消息发送至对应的用户终端。10.根据权利要求1所述的方法,其特征在于,在所述将所获取的聊天消息发送至对应的用户终端之后,所述方法还包括:清理存储在所述预设待推送队列中的待清理聊天室标识信息...

【专利技术属性】
技术研发人员:石鹏
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1