基于在线直播的消息推送方法、装置、介质和电子设备与流程

文档序号:16199015发布日期:2018-12-08 06:25阅读:152来源:国知局
基于在线直播的消息推送方法、装置、介质和电子设备与流程

本发明涉及通信技术领域,具体而言,涉及一种基于在线直播的消息推送方法、装置、介质和电子设备。

背景技术

在线直播服务中,一个直播间会有大量用户同时在线,用户在观看直播的同时,会进行聊天、赠送礼物和点赞,这些操作行为都是通过发送消息来实现的。若一个直播间同时在线的用户数较多,那么每秒发送的消息量相应也很多,而每个用户发送的消息还需要广播给直播间内的所有用户。在这样的背景下,需要对用户发送的消息进行广播流量控制,以将向直播终端发送消息的速率限制在一个合理的范围内。

但是,如何能够提升在线直播场景下的消息处理效率,避免消息处理效率随着在线人数的增加而递减一直是亟待解决的技术问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明的目的在于提供一种基于在线直播的消息推送方法、装置、介质和电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的第一方面,提供了一种基于在线直播的消息推送方法,包括:存储参与直播的终端发送的消息;按照预定的消息拉取速率从已存储的消息中获取消息;将获取到的消息推送给所述参与直播的终端,以使所述参与直播的终端进行显示。

在本发明的一些实施例中,基于前述方案,按照预定的消息拉取速率从已存储的消息中获取消息的步骤,包括:以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息。

在本发明的一些实施例中,基于前述方案,将获取到的消息推送给所述参与直播的终端的步骤,包括:将获取到的与各个直播间相关联的消息推送给参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,将获取到的消息推送给所述参与直播的终端的步骤,包括:根据直播间与接入服务器之间的关联关系,将获取到的针对各个直播间的消息推送给相应的接入服务器,以使所述相应的接入服务器推送至参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,按照预定的消息拉取速率从已存储的消息中获取消息的步骤,包括:基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量相匹配。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量成正相关关系。

根据本发明的第二方面,提供了一种基于在线直播的消息推送装置,包括:存储单元,用于存储参与直播的终端发送的消息;获取单元,用于按照预定的消息拉取速率从已存储的消息中获取消息;推送单元,用于将所述获取单元获取到的消息推送给所述参与直播的终端,以使所述参与直播的终端进行显示。

在本发明的一些实施例中,基于前述方案,所述获取单元配置为:以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息。

在本发明的一些实施例中,基于前述方案,所述推送单元配置为:将获取到的与各个直播间相关联的消息推送给参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,所述推送单元配置为:根据直播间与接入服务器之间的关联关系,将获取到的针对各个直播间的消息推送给相应的接入服务器,以使所述相应的接入服务器推送至参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,所述获取单元配置为:基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量相匹配。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量成正相关关系。

根据本发明的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面所述的基于在线直播的消息推送方法。

根据本发明的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述第一方面所述的基于在线直播的消息推送方法。

在本发明的一些实施例所提供的技术方案中,通过按照预定的消息拉取速率从已存储的消息中获取消息,并将获取到的消息推送给参与直播的终端进行显示,使得无论参与直播的终端发送了多少消息,都能够按照预定的消息拉取速率来获取消息,并推送给参与直播的终端,这样能够避免消息处理效率随着在线人数的增加而递减的问题。

在本发明的一些实施例所提供的技术方案中,通过以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息,可以保证向参与各个直播间的直播活动的终端推送的消息均衡,并且能够保证参与各个直播间的直播活动的终端能够显示数量较为合理的直播消息。

在本发明的一些实施例所提供的技术方案中,通过基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息,使得最新的直播消息能够及时推送至参与直播的终端进行显示。

在本发明的一些实施例所提供的技术方案中,通过使预定的消息拉取速率与参与直播的终端在单位时间内能够展示的消息量相匹配,使得推送至终端的消息不会因为较多而导致显示频率过快而影响用户的观看体验,同时又可以尽可能多地向终端推送消息。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本发明实施例的基于在线直播的消息推送方法或消息推送装置的示例性系统架构;

图2示出了一种实施例的直播消息的推送流程示意图;

图3示意性示出了根据本发明的实施例的基于在线直播的消息推送方法的流程图;

图4示出了根据本发明的实施例的基于在线直播的消息推送流程示意图;

图5示意性示出了根据本发明的实施例的基于在线直播的消息推送装置的框图;

图6示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示出了可以应用本发明实施例的基于在线直播的消息推送方法或消息推送装置的示例性系统架构100。

如图1所示,在本发明的实施例中,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是具有显示屏并且支持在线直播的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所参与的直播活动提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。

需要说明的是,本申请实施例所提供的基于在线直播的消息推送方法一般由服务器105执行,相应地,消息推送装置一般设置于服务器105中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示出了一种实施例的直播消息的推送流程示意图。

在图2所示的推送流程中,主要是通过在源头控制单一用户的发送频率,并结合一个直播间用户数的梯度变化来调节的。

具体地,参照图2,参与直播的用户通过直播终端发送的消息被传送至接入服务器,接入服务器将消息转发至消息广播服务。消息广播服务根据在线用户总数,获取适当分桶数量(分桶在算法上为分组的概念)的用户接入信息,根据获取到的信息向接入服务器广播消息,然后由接入服务器推送给相应的直播终端。

其中,消息广播服务根据在线用户总数,获取适当分桶数量的用户接入信息主要是根据在线用户总数来确定每条消息需要广播的用户数。在本发明的实施例中,用户在线信息分桶存储可以是存储不同在线用户数区间与每条消息需要广播的用户数之间的关联关系。比如:若一个直播间内的人数在1000人以内,则可以将每个用户发送的消息都广播给所有用户;若在线用户数达到1万人,则每条消息只挑选其中的1000个用户来进行广播;若在线用户数更多,这样用户并发消息量进一步增大,这时每条消息广播的人数也进一步减小,比如,在线用户数达到10万人时,每条消息只广播给挑选出的100人。

图2所示的技术方案的问题在于:消息广播服务每次广播消息需要访问存储器来获取用户的在线接入信息,这个信息的访问频率随着用户同时在线量呈线性比例增加。所以当用户同时在线量越来越大后,广播服务访问存储器的频率增加,而效率会下降,对服务处理能力形成巨大压力。

同时,当用户在线量超过一定数量后,对于每次广播的消息量会按照梯度呈比例递减,以控制消息广播总量。所以为了按梯度获取需要广播的用户接入信息,在存储时需要分桶存储,这样也导致实现算法较复杂,效率不高。

基于上述实施例中的直播消息推送方法存在的问题,本发明下述实施例提供了改进后的消息推送方案。

图3示意性示出了根据本发明的实施例的基于在线直播的消息推送方法的流程图。

参照图3,根据本发明的实施例的基于在线直播的消息推送方法,包括:

步骤s302,存储参与直播的终端发送的消息。

在本发明的实施例中,可以通过存储器(如缓冲池)存储所有参与直播的终端发送的消息。进一步地,存储器的特性可以是后进先出,并且超过存储容量后,先存入存储器的消息将被丢弃。

步骤s304,按照预定的消息拉取速率从已存储的消息中获取消息。

根据本发明的示例性实施例,可以基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息。

在该实施例中,通过基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息,使得最新的直播消息能够及时推送至参与直播的终端进行显示。

根据本发明的示例性实施例,步骤s304包括:以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息。

在该实施例中,通过以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息,可以保证向参与各个直播间的直播活动的终端推送的消息均衡,并且能够保证参与各个直播间的直播活动的终端能够显示数量较为合理的直播消息。

根据本发明的示例性实施例,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量相匹配。

更进一步地,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量成正相关关系。这样使得推送至终端的消息不会因为较多而导致显示频率过快而影响用户的观看体验,同时又可以尽可能多地向终端推送消息。

步骤s306,将获取到的消息推送给所述参与直播的终端,以使所述参与直播的终端进行显示。

根据本发明的示例性实施例,当以直播间为单位来获取与各个直播间相关联的消息时,步骤s306包括:将获取到的与各个直播间相关联的消息推送给参与所述各个直播间的直播活动的终端。

在本发明的实施例中,由于参与直播的终端一般都是与接入服务器相连,因此步骤s306包括:根据直播间与接入服务器之间的关联关系,将获取到的针对各个直播间的消息推送给相应的接入服务器,以使所述相应的接入服务器推送至参与所述各个直播间的直播活动的终端。

基于图3所示的消息推送方法,图4示出了具体的消息推送流程。在图4所示的实施例中,由消息广播服务(其具体可以是服务器)来执行图3中所示的消息推送方法。具体地:参与直播的用户通过直播终端发送的消息被传送至接入服务器,接入服务器将消息写入缓冲池。消息广播服务以固定的速率来从缓冲池中拉取消息,然后推送至相应的接入服务器,再由接入服务器将消息推送给相应的直播终端。

随着在线用户的增长,只需要横向扩展“接入服务器”的数量来支撑更多的用户接入。并且可以向每个直播间分配其接入服务器,把这种映射关系保存在“消息广播服务”的内存中。由于一台接入服务器一般能支撑较多用户接入(比如5万),那么即使有100万用户在线,也只需要20台接入服务器,这样实际在内存中保存的映射关系就不会随用户增长变得很大。

同时,考虑到在直播场景下,终端展示消息是以一个固定速率(比如,每秒2~5条)来展示的,即便推送过多的消息,终端也没法及时展示。换句话说,“消息广播服务”只需要控制送到一个直播间对应的所有“接入服务器”上的广播消息流量大概相近于终端的展示速率即可满足业务场景需求。因此可以根据直播终端展示消息的速率上限(如每秒5条),使“消息广播服务”以固定的速率从“消息缓冲池”中拉取最新的消息,并根据自身直播间和接入服务器的内存映射关系推送到各“接入服务器”上,由“接入服务器”再投递到各“直播终端”上进行展示。

需要说明的是,“消息广播服务”在拉取消息时,是以直播间为单元,并以固定的速率从“消息缓冲池”中拉取最新的消息,这样能够保证拉取到的与各个直播间相关的消息均衡。

此外,图4中引入了一个“后进先出的消息缓冲池”,这样对于用户发送的消息,不管有多少用户并发在线发消息,总是先进入消息缓冲池,通过缓冲池的大小来控制发送的流量和速率,并且都能够优先将最新的消息推送给直播终端。对于多余的消息,缓冲池的特性是后进先出,超过缓冲容量的消息将被丢弃,不再发送。这样当同时在线用户数较少时,发送消息量也少,缓冲池不会满,所有消息都会被广播发送。当超过一定阈值后,缓冲池填满,还未及时广播的旧消息将被清除,最新消息总是可以得到及时发送。

可见,本发明实施例的消息推送方法可以解耦直播在线用户数和消息广播量之间的线性绑定关系,降低了设计和实现复杂度,提升了直播场景下消息的广播效率和稳定性。

图5示意性示出了根据本发明的实施例的基于在线直播的消息推送装置的框图。

参照图5,根据本发明的实施例的基于在线直播的消息推送装置500,包括:存储单元502、获取单元504和推送单元506。

具体地,存储单元502用于存储参与直播的终端发送的消息;获取单元504用于按照预定的消息拉取速率从已存储的消息中获取消息;推送单元506用于将所述获取单元504获取到的消息推送给所述参与直播的终端,以使所述参与直播的终端进行显示。

在本发明的一些实施例中,基于前述方案,所述获取单元504配置为:以直播间为单位,按照预定的消息拉取速率从已存储的消息中获取与各个直播间相关联的消息。

在本发明的一些实施例中,基于前述方案,所述推送单元506配置为:将获取到的与各个直播间相关联的消息推送给参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,所述推送单元506配置为:根据直播间与接入服务器之间的关联关系,将获取到的针对各个直播间的消息推送给相应的接入服务器,以使所述相应的接入服务器推送至参与所述各个直播间的直播活动的终端。

在本发明的一些实施例中,基于前述方案,所述获取单元504配置为:基于后进先出的机制,按照预定的消息拉取速率从已存储的消息中获取消息。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量相匹配。

在本发明的一些实施例中,基于前述方案,所述预定的消息拉取速率与所述参与直播的终端在单位时间内能够展示的消息量成正相关关系。

下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备的计算机系统600仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的基于在线直播的消息推送方法。

例如,可以实现如图3中所示的:步骤s302,存储参与直播的终端发送的消息;步骤s304,按照预定的消息拉取速率从已存储的消息中获取消息;步骤s306,将获取到的消息推送给所述参与直播的终端,以使所述参与直播的终端进行显示。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1